小言_互联网的博客

Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中

338人阅读  评论(0)

hello,大家好,我是wangzirui32,今天我们来学习如何爬取CSDN热搜数据,并保存到Excel表格中。
开始学习吧!

1. 数据包抓取

打开CSDN首页,再打开检查(或为审查元素,各大浏览器不同,笔者用的是FireFox浏览器),点击“网络”(或是Network),再点击搜索框,可以看到出现了4个请求:
经过分析,发现网址为:

https://silkroad.csdn.net/api/v2/assemble/list/channel/pc_hot_word?channel_name=pc_hot_word&size=10&user_name=wangzirui32&platform=pc&imei=10_19279376140-1610717024696-925673

返回的数据为:
看来,这就是热搜数据的原地址,但是,我们先不着急编写代码,前面说了url是很长的,但是我们可以删减url参数,毕竟有些url的参数是用来迷惑各位爬虫程序员的,删减后的url为:

https://silkroad.csdn.net/api/v2/assemble/list/channel/pc_hot_word?size=10

看见没,url只剩下了一个参数,不仅降低了编写网页参数字典的难度,还可以控制爬取热搜的数量(size参数),岂不妙哉!

2. 编写代码

import requests
from fake_useragent import UserAgent

"""
fake_useragent库安装:pip install fake-useragent
fake_useragent库是用来生成请求头中的User-Agent信息
"""

headers = {
   
    "User-Agent": UserAgent().random,
    "Host": "silkroad.csdn.net",
}

url = "https://silkroad.csdn.net/api/v2/assemble/list/channel/pc_hot_word"

params = {
   
    "size": "10",
}
print("获取数据...")
r = requests.get(url, params=params, headers=headers)

print("解析数据...")
json_data = r.json()['data']['items']

hot_content_list = []

# 从json数据中提取热搜内容并存储到列表中
for i in json_data:
    hot_content = i["productId"]
    hot_content_list.append(hot_content)

print("保存数据...")
with open("CSDN-Hot.txt", "w") as f:
    num = 1 # 序号
    for i in hot_content_list:
        f.write(str(num) + " " + i + "\n")
        num += 1

print("爬取结束!热搜数据已经保存到CSDN-Hot.txt文件中!")

运行代码,打开CSDN-Hot.txt文件,可以看到:

1 QQ读取用户浏览记录
2 SQL注入漏洞防护
3 程序员离职小技巧
4 2021美赛数学建模
5 linux命令行大全
6 python新手练习题
7 高质量自学网站
8 eclipse安装教程
9 Linux常用命令大全
10 机器学习

好了,今天的课程就到这里,感兴趣的可以点个赞和收藏,我们下次再见!


转载:https://blog.csdn.net/wangzirui32/article/details/116355942
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场