python requests模块
requests是一个python模拟浏览器发送http请求的模块
1. 使用requests模块发送get请求,获取网页源代码
import requests
url = "http://www.baidu.com"
resp = requests.get(url)
resp.encoding = "utf-8" # 如果resp.text是乱码则需要指定编码格式,一般不是utf-8就是gbk
print(resp.text)
2. get请求可以携带参数,get请求的参数写在url的域名后面
import requests
kw = input("请输入要检索的关键字: ")
url = f"https://www.sogou.com/web?query={kw}"
headers = {
# 添加一个请求头信息UA,如果没有请求头,目标服务器会拒绝我们访问,这是一个最简单的反爬手段,只需要在http请求头中添加浏览器信息,就可以骗过目标服务器。
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57"
}
resp = requests.get(url, headers=headers)
print(resp.text)
3. 使用requests模块发送post请求
import requests
url = "https://fanyi.baidu.com/sug"
data = {
"kw": input("请输入一个单词")
}
resp = requests.post(url, data=data)
print(resp.text) # 拿到json字符串
print(resp.json) # 拿到json字典
4. 当get请求参数太多时怎么处理
import requests
url = "https://movie.douban.com/j/chart/top_list"
headers = {
# 添加一个请求头信息UA,如果没有请求头,目标服务器会拒绝我们访问,这是一个最简单的反爬手段,只需要在http请求头中添加浏览器信息,就可以骗过目标服务器。
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57"
}
data = {
"type": "13",
"interval_id": "100:90",
"action": "",
"start": "0",
"limit": 20
}
resp = requests.get(url, params=data, headers=headers) # get请求会默认把params参数拼到url后面
print(resp.text) # 拿到json字符串
print(resp.json()) # 拿到json字典
print(resp.request.url)