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
查看评论