案例一、百度翻译
import requests
# 爬取网站:https://fanyi.baidu.com
url = "https://fanyi.baidu.com/sug"
s = input("请输入要翻译的英文单词")
dat = {
"kw": s
}
# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递
resp = requests.post(url, data=dat)
print(resp.json())
百度翻译在搜索时,sug里面的kw会发生变化,我们定义一个字典来改变这里的值
代码输出:
案例二、豆瓣排行榜
数据在没有在源代码中,需要js加载
其中js就在下方的网址中
Request URL: https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20
并且其中的封装的参数如下
其中,每一次加载数据,只有limit在更新
import requests
# 爬取网站 https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90&action=
# 需要加载的js地址:https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20
# #这个连接中?后的为数据
url = "https://movie.douban.com/j/chart/top_list"
# 重新封装参数
param = {
"type": 24,
"interval_id": "100:90",
"action": "",
"start": 0,
"limit": 20
}
# resp = requests.get(url=url, params=param)
#
# # 输出地址
# print(resp.request.url)
#
# print(resp.request.headers)
# #重新定义User-Agent
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3878.400 QQBrowser/10.8.4518.400"
}
resp = requests.get(url=url, params=param, headers=header)
print(resp.text)
print(resp.json())
resp.close() # 关掉resp