静态网站怎么制作(精选)2篇

2024年静态网站怎么制作 篇1

这次分享一个房地产网站数据采集及可视化分析的Python实际案例,应用效果还是有,步骤如下:

1、获取目标网站

2、分析网站,确定数据采集的方法

3、对采集的数据进行处理

4、最后可视化

先看看最终效果:

首先获取目标网站,可以发现获取的数据信息都在网页上面,所以可以直接使用xpath标签定位获取网页上的数据,而不用担心动态网页的数据会出现变化:

然后获取各个采集字段的具体xpath,包括房源信息、房价、地区、建面(面积)等字段的xpa,部分代码如下:

fymc=n.xpath('./div/div[1]/a/text()')[0]#房源名称 fj=n.xpath('./div/div[6]/div/span[1]/text()')[0]#房价 diqu=n.xpath('./div/div[2]/span[1]/text()')[0]#地区 mj=n.xpath('./div/div[3]/span/text()')[0]

然后我们要爬取页数要设置,可以看到页数链接明显出现变化,而且还是规律性的,所以可以构造一个循环采集指定页数的信息(也就是翻页采集),部分代码如下:

for i in range(1,6): url='https://nn.fang.lianjia.com/loupan/pg'+str(i) #print(url)

翻页采集搞定了,接下来就是数据处理,先判断采集的数据有没有空值或者缺失值,就必须使用numpy和pandas这两个模块进行数据处理,部分代码如下:

data=pd.read_csv(r'C:/Users/Administrator/Desktop/链家数据.csv',encoding='gbk') #data.describe()#做描述性分析,判断有没有空值或者缺失值

然后查看采集的数据发现,建面面积这个字段既有中文又有数字和特殊符号,我们要对这个字段进行拆分,拆分为最大面积和最小面积,代码如下:

data['最小面积']=data['面积'].str.split(expand=True)[1].str.split('-',expand=True)[0] data['最大面积']=data['面积'].str.split(expand=True)[1].str.split('-',expand=True)[1].str.split('㎡',expand=True)[0] data=data.drop('面积',axis=1)

处理完采集的数据,接下来就是对数据进行可视化,可视化就用到matplotlib这个模块,我们用了三个图去可视化数据,包括折线图、饼图、条形图,部分代码如下:

#制作可视化图表 plt.figure(figsize=(10,8)) plt.suptitle("南宁房价可视化分析",fontsize=20) plt.subplot(2,2,1) #不同地区的房源数量--饼图 plt.title('不同地区的房源数量占比--饼图') explode=[0,0,0,0,0.2,0] plt.pie(x=data.地区.value_counts(),labels=data.地区.value_counts().index, explode=explode,autopct='%.3f%%') plt.subplot(2,2,2) plt.title('不同地区的房源数量--条形图') plt.ylim(0,20) x=data.地区.value_counts().index y=data.地区.value_counts() plt.bar(x=x,height=y,width=0.5) for a,b in zip(x,y): plt.text(a,b+0.2,str(b),ha='center',va='bottom',fontsize=10.5,color='green') plt.subplot(2,1,2) plt.title('不同地区平均房价——折线图') plt.ylim(0,30000) qingxiu=int(data[data['地区']=="青秀区"].房价.mean()) xixiangtang=int(data[data['地区']=="西乡塘区"].房价.mean()) xingning=int(data[data['地区']=="兴宁区"].房价.mean()) liangqing=int(data[data['地区']=="良庆区"].房价.mean()) yongning=int(data[data['地区']=="邕宁区"].房价.mean()) dq=['青秀区','西乡塘区','兴宁区','良庆区','邕宁区'] mean_fj=[qingxiu,xixiangtang,xingning,liangqing,yongning] #折线图# plt.plot(dq,mean_fj,label='不同地区平均房价') for a,b in zip(dq,mean_fj): plt.text(a,b+0.2,str(b),ha='center',va='top',fontsize=10.5) plt.legend(loc=1,fontsize=13) plt.show()

最后不多说了,附上完整代码:

import requests from lxml import etree import csv import pandas as pd import matplotlib.pyplot as plt from pylab import mpl import time with open('C:/Users/Administrator/Desktop/链家数据.csv','w',encoding='gbk') as f: f.write('房源名称,房价,地区,面积\n') f.close() for i in range(1,6): url='https://nn.fang.lianjia.com/loupan/pg'+str(i) #print(url) headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } r=requests.get(url,headers=headers).content b=etree.HTML(r) c=b.xpath('/html/body/div[3]/ul[2]/li') try: for n in c: fymc=n.xpath('./div/div[1]/a/text()')[0]#房源名称 fj=n.xpath('./div/div[6]/div/span[1]/text()')[0]#房价 diqu=n.xpath('./div/div[2]/span[1]/text()')[0]#地区 mj=n.xpath('./div/div[3]/span/text()')[0] with open('C:/Users/Administrator/Desktop/链家数据.csv','a',encoding='gbk') as f1: f1.write('{},{},{},{}\n'.format(fymc,fj,diqu,mj)) print("数据爬取成功!") except: pass time.sleep(20) mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False data=pd.read_csv(r'C:/Users/Administrator/Desktop/链家数据.csv',encoding='gbk') #数据处理,拆分面积字段为两列数据,最小面积和最大面积 #data.describe() data['最小面积']=data['面积'].str.split(expand=True)[1].str.split('-',expand=True)[0] data['最大面积']=data['面积'].str.split(expand=True)[1].str.split('-',expand=True)[1].str.split('㎡',expand=True)[0] data=data.drop('面积',axis=1) #制作可视化图表 plt.figure(figsize=(10,8)) plt.suptitle("南宁房价可视化分析",fontsize=20) plt.subplot(2,2,1) #不同地区的房源数量--饼图 plt.title('不同地区的房源数量占比--饼图') explode=[0,0,0,0,0.2,0] plt.pie(x=data.地区.value_counts(),labels=data.地区.value_counts().index, explode=explode,autopct='%.3f%%') plt.subplot(2,2,2) plt.title('不同地区的房源数量--条形图') plt.ylim(0,20) x=data.地区.value_counts().index y=data.地区.value_counts() plt.bar(x=x,height=y,width=0.5) for a,b in zip(x,y): plt.text(a,b+0.2,str(b),ha='center',va='bottom',fontsize=10.5,color='green') plt.subplot(2,1,2) plt.title('不同地区平均房价——折线图') plt.ylim(0,30000) qingxiu=int(data[data['地区']=="青秀区"].房价.mean()) xixiangtang=int(data[data['地区']=="西乡塘区"].房价.mean()) xingning=int(data[data['地区']=="兴宁区"].房价.mean()) liangqing=int(data[data['地区']=="良庆区"].房价.mean()) yongning=int(data[data['地区']=="邕宁区"].房价.mean()) dq=['青秀区','西乡塘区','兴宁区','良庆区','邕宁区'] mean_fj=[qingxiu,xixiangtang,xingning,liangqing,yongning] #折线图# plt.plot(dq,mean_fj,label='不同地区平均房价') for a,b in zip(dq,mean_fj): plt.text(a,b+0.2,str(b),ha='center',va='top',fontsize=10.5) plt.legend(loc=1,fontsize=13) plt.show()

2024年静态网站怎么制作 篇2

回答问题前我先说一说html、css、JavaScript之间的关系,打个比方就是“html是一所房屋的骨架,css是用来装修房屋的,其实,一所房子到此可以住了,但是,我们可以想一下人们对房屋的需求,要有电视吧?要有洗衣机空调吧?也要有水电煤吧?有了这些要控制它们吧?所以这些功能性的东西就交给JavaScript了”

作为一个前端从业者,说几句实话。如果说单是学html和css能不能找到工作,我觉得要考虑以下2点:

1.工作地点 2.业务需求 3.工作内容

其实这两点是结合的,拆分开来谈也不是特别有说服力。

拿工作地点来说,一线城市北上广深,抛开传统行业和一些银行还有外包公司,不管大公司还是小公司,都比较紧随互联网的步伐,所以使用的技术也很新,只靠HTML和css只能写一些静态页面(我说的静态包含了有css动画的页面),没办法加一些功能性的东西,也没办法加载数据和数据的更新,根本无法满足互联网公司业务的发展需求。现在的网页无论是PC端还是移动端,早已不是只能看不能用的情况了。

说到工作内容呢,要看你是做什么的web网页,还是app,如果是这些那仅掌握这两个是远远不够的。之前我接触过的一个公司,他们把css和JavaScript是分开的,直白点就是有的人只负责写css,有的人负责写js,这就要看每个人更擅长什么。

好了,写了这么多想必你也能看明白了,把css学精通也是可以养家糊口并更上一层楼的。

如果有什么想问想学不了解的,可以关注私信我,可以一起学习交流下。

猜你喜欢

热门内容