爬取每日热点中微博热度榜
Posted ha15cier
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取每日热点中微博热度榜相关的知识,希望对你有一定的参考价值。
登入今日热点网站,打开源代码可以得到标题标签为span,class=’t’。热度标签也为span,class=’e’,无需爬取排名数据只需要在之后遍历时使用i+1即可解决。
首先将伪装爬虫,经过多次运行不伪装爬虫会报错无法运行,用find_all遍历标题和热点标签将他们添加入list列表中
用BeautifulSoup的html解析器
将list列表数据变为字符串否则报错,打开文件然后用追加文本形式将数据写入文件weibolist.txt中。
最后用主函数运行所有函数得出结果
import requests from bs4 import BeautifulSoup def get(url,list,num): #定义一个获取信息函数 headers = {‘user-agent‘:‘Mo+zilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11‘} #伪装爬虫 不然无法爬取网页信息 r = requests.get(url,timeout = 30,headers=headers) #发送请求 时间为30s soup = BeautifulSoup(r.text,"html.parser") list1 = soup.find_all(‘span‘,class_=‘t‘) #寻找标签为span的数据 list2 = soup.find_all(‘span‘,class_=‘e‘) print("{:^10} {:^30} {:^10} ".format(‘排名‘,‘标题‘,‘热度‘)) for i in range(num): print("{:^10} {:^30} {:^10} ".format(i+1,list1[i].string,list2[i].string)) #遍历前十个数据打印出来 list.append([i+1,list1[i].string,list2[i].string]) #将数据添加进列表中 def create_file(file_path,msg): #定义一个创建文件夹,将爬取的资源用txt格式打开 f=open(file_path,"a") f.write(str(msg)) #将列表数据变为字符串,直接用列表报错 f.close def main(): list = [] url = "https://tophub.today/" get(url,list,10) create_file("D:pythonweibolist.txt",list) main()
代码运行结果:
以上是关于爬取每日热点中微博热度榜的主要内容,如果未能解决你的问题,请参考以下文章
获取某个平台(例如微博知乎微信百度等)的热点前十名的标题信息以及热度数据