一、设计方案
1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化
2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件、排名与热度,数据呈一定规律排序。
3.设计方案概述:思路:首先打开目标网站,运用开发工具查看源代码,寻找数据标签,通过写爬虫代码获取所要的数据,将数据保存为csv或者xlsx文件,读取文件对数据进行数据清洗处理、可视化等操作。
难点:网站数据的实时更新,信息容易变动;重点在于寻找数据标签;对数据整理、可视化等代码的掌握程度较低,需要观看以往视频或者上网搜索,进度慢。
二、主题页面的结构特征分析
1.主题页面的结构与特征:通过分析页面得知所要获取的数据分布于a标签中,td为热度标签。
2.Htmls页面解析
3.节点(标签)查找方法与遍历方法:通过re模块的findall方法进行查找。
三、程序设计
1.数据爬取与采集
importreimportrequestsimportpandas as pd#爬取网站
url = 'https://tophub.today/n/KqndgxeLl9'
#伪装爬虫
headers = {'user-Agent':""}#抓取网页信息
response=requests.get(url,headers=headers,timeout=30)
response= requests.get(url,headers =headers)#爬取内容
html =response.text
titles= re.findall('.*?(.*?)',html)[4:24]
heat= re.findall('
(.*?)',html)[:20]x= {'标题':titles,'热度':heat}
y=pd.Dataframe(x)#创建空列表
data=[]for i in range(20):#拷贝数据
data.append([i+1,titles[i],heat[i][:]])#建立文件
file=pd.Dataframe(data,columns=['排名','热搜事件','热度(万)'])print(file)#保存文件
file.to_excel('D:\bbc\微博热搜榜.xlsx')
2.对数据进行清洗和处理