书接上文,这里补充了两个实例,能够加深对request的理解。本文分两个实例:1.百度翻译 部分 2.豆瓣喜剧电影排行榜 部分我的爬虫学习记录_01_request应用_吃瓜群众_小王的博客-CSDN博客https://blog.csdn.net/zxcv85887033/article/details/126190505?spm=1001.2014.3001.5502
百度翻译
在翻译界面,随着我们输入字母,接口https://fanyi.baidu.com/sug会传回来一些数据。
这便是我们要爬取的数据。
import requests
url = "https://fanyi.baidu.com/sug"
s=input("输入查询")
my_data={
"kw": s # 这个是百度翻译,sug文件中payload页 有from data
}
resp=requests.post(url, data=my_data) # 把查询数据传入
print(resp.json()) # _json在py中转成dic
豆瓣电影分类排行榜
爬取豆瓣电影分类排行榜 - 喜剧片 (douban.com)的信息,首先我们先查看网页源代码,看我们想要的电影的相关信息在源码中是否存在。最后结果表明我们要的数据不在源码中。
于是使用开发者工具,找到我们要访问的url = "https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20"。
可见我们要抓取的数据。
import requests
url = "https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20"
resp = requests.get(url)
print(resp.text)
运行发现返回结果是空,考虑可能需不需要加headers。
import requests
url = "https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20"
my_headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62"
}
resp = requests.get(url,headers=my_headers)
print(resp.text)
成功返回内容。
再将目光转向我们的url。
url后部type=24&interval_id=100:90&action=&start=0&limit=20 与负载(payload)对应
再次修改代码
import requests
url="http://movie.douban.com/j/chart/top_list"
param={
"type": "24",
"interval_id": "100:90",
"action" : "",
"start": 0,
"limit": 20,
}
my_headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62"
}
resp=requests.get(url=url,params=param,headers=my_headers)
print(resp.json())
resp.close() # 关闭