用python语言帮我写一份爬取微博热搜的代码
# 导入所需要的库
import requests # 用来发送请求
from lxml import etree # 用来解析网页内容
import json # 用来处理json数据
import re # 正则表达式
# 定义一个函数,用于爬取微博热搜信息
def get_weibo_hot():
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'}
url = 'https://s.weibo.com/top/summary?cate=realtimehot'
response = requests.get(url, headers=headers).text # 获取响应,并转化成文本格式
html = etree.HTML(response) # 解析响应内容
hot_data = html.xpath('//script[@id="pl_top_realtimehot"]//text()')[0] # 提取出json数据所在的文本内容
hot_data = re.search(r'\{.*\}', hot_data).group() # 通过正则表达式将json字符串从文本中匹配出来
hot_dict = json.loads(hot_data) # 将json字符串转化成python字典格式
dataList = hot_dict['data'] # 提取出想要的信息,即微博热搜列表list
for data in dataList: # 遍历list中的信息,并将其拆分成各自的字典key-value形式
rankNum = data['rank'] # 排名
titleName = data['title'] # 标题名称
titleUrl= data['scheme'] # 链接地址url
print('{}、{} {}'.format(rankNum, titleName, titleUrl)) ## 这里你也可以将微博热搜信息进行存储,如写入txt文件中。。。。。。。。。。 ## 例如:with open('weiboHotData', 'w') as f: f .write('{}、{} {}'.format(rankNum, titleName, titleUrl)) f .write('\n') ## 有兴趣的朋友也可以尝试一下~## ## 有问题随时沟通~## ## 加上注释之后代码如下所示~~## if __name__ == "__main__": get_weibo_hot()
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!