python代码实现保存微博文娱榜的数据Ajax异步加载
  2LzAzYhjn3vW 2023年12月22日 18 0

最近有小伙伴看完蜜蜂之前分享的爬虫文章之后,使用python代码实现了自动保存网站上面的图片到本地,但是最近又有新的需求。

需求描述:爬取微博文娱榜的数据, 并保存到csv文件中

网址:https://weibo.com/hot/entertainment

需要将一下框上的两个字段都爬取下来。

python代码实现保存微博文娱榜的数据Ajax异步加载_字段

对于这样的需求,看过蜜蜂之前的文章的小伙伴可能首先想到的就是爬取网页源代码,然后用xpath来提取相应字段。但是这样去代码实现的时候会发现无法得到想要的结果,这是因为这是一个动态页面。以下是蜜蜂的代码实现过程:

# @File:微博文娱榜.py
# author:蜜蜂
# Time:2023/12/20 14:40
#  爬取微博文娱榜的数据, 并保存到csv文件中, 字段: 标题, 热度  url: https://weibo.com/hot/entertainment
import os
import requests
def weibo():
    url='https://weibo.com/ajax/statuses/entertainment'
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
        'Cookie':'SUB=_2AkMSMUvRf8NxqwFRmfoXyGznbI5xww7EieKkbboKJRMxHRl-yT9vqk4ItRB6ObFlPtAZ_SYtdFXhjYjm0wD3d3rxCkxs; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9Whgy2VB5gQk2weS6KFXAbKu; XSRF-TOKEN=f_eYOMcZ_wkhA-iwLZg3zAWM; WBPSESS=V0zdZ7jH8_6F0CA8c_ussTgcazs36Qa0WqntzpwqwQekG_hUALsg_lThPDKYLprWTXfAIcFz0LjPkeWC2cajRDlLwn55X7Z23FZW7fUqa4BjyMfL3gY8riKpxPIkkSdF'
    }
    resp=requests.get(url,headers=headers).json()
    band_list=resp['data']['band_list']
    len_list=(len(band_list))
    with open('微博文娱榜.csv','w') as f:
        for i in range(len_list):
            hot_num = band_list[i]['hot_num']
            title = band_list[i]['note']
            print(title,end='\t')
            print(hot_num)
            f.write(f'{title},{hot_num}\n')

if __name__ == '__main__':
    weibo()

运行效果:

python代码实现保存微博文娱榜的数据Ajax异步加载_数据_02

保存的csv文件:

python代码实现保存微博文娱榜的数据Ajax异步加载_数据_03

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
2LzAzYhjn3vW