分享一下使用requests的经验。
先附上代码。哦对了,如果你不知道payload和headers怎么获取,参考下:https://blog.csdn.net/Sunyoho/article/details/117587516
import requests
import time
i = 0
c = 1
n = input("How many classes do you want to give:")
for i in range(0,int(n)):
payload = {
'pageIndex': 1,
'pageSize:': 50,
'relativeOffset': 0,
'searchTimeType': -1,
'orderType': 50,
}
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/91.0.4472.77 Safari/537.36'
}
url = 'https://study.163.com/j/search/hotwords.json?hotwordType=0'
response = requests.post(url, headers=headers, json=payload)
g = response.json()
print(c,' ',g['result']['recomHotword'][1]['name'],':',g['result']['recomHotword'][1]['url'])
c = c + 1
time.sleep(1)
先导入你的requests,然后导入time防止连续爬虫导致崩溃,让他缓一缓,这里的n是获取网页数据的次数,说白了就是for循环的次数,先创建payload,把网页携带的一些参数复制上去,这不用说了吧,在你想要查询的网页右键-“检查”-然后选择network,requests headers就好了,里面url和参数都在里面。
Headers哪里来?
跟payload一样,requests headers里面有User-Agent和别的,写全一点。
URL?
URL也在json文件里,自己去复制吧。
爬取数据,耶!
payload和url设置好后,开始爬取吧,定义一个变量response,我们用post方法把参数urlpayload都写进去。设好后,创建g,用来转换json,最后输出,整条整条显示太繁琐了,直接显示name和url,代码里有,这个c是序号,加1就好了,最后请加个time.sleep(1),防止崩溃。
成功了!
运行程序,链接会一条条出现,这感觉!
1 英语 : https://study.163.com/course/introduction/1004495007.htm
2 数据可视化 : https://mooc.study.163.com/smartSpec/detail/1202883605.htm
3 相见恨晚,雅思一次冲7 : https://ke.study.163.com/course/detail/100082387?Pdt=ydk&inLoc=app_ss_zdssc
4 零基础入门C语言 : https://study.163.com/sl/VRC4?Pdt=ydk&inLoc=app_ss_zdssc
5 数据可视化 : https://mooc.study.163.com/smartSpec/detail/1202883605.htm
三连!我要去吃饭了!