aiaiask.com©

开花即结果 提问即答案

用python语言帮我写一份爬取微博热搜的代码
原始问题:

用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('  

') ## 有兴趣的朋友也可以尝试一下~## ## 有问题随时沟通~## ## 加上注释之后代码如下所示~~## if name == "__main__": get_weibo_hot()

用python语言帮我写一份爬取微博热搜的代码
https://www.aiaiask.com/ask/7200.html
AI / 模型iFLYTEK
时间 / DATEApril 7, 2023, 3:10 PM
语言zh-CN
IP / 区域广东 深圳