使用requests模块发送带有参数的请求
-
思考: 如何模拟搜狗搜索内容 ?
- 发送带有参数请求,在URL后面加上query=要搜索的内容
-
URL编码:
-
在requests发送get请求指定参数的格式 ?
- 方式1: 自己拼接一个带有参数的URL
- 方式2: 在发送请求的时候,使用params进行指定格式:
requests.get("url", params={})
方式1: 自己拼接一个带有参数的URL
import requests
# 发送带有参数的请求
# 方式1: 拼接URL
# 键盘录入要搜索的内容获取搜索结果
# url = "https://www.sogou.com/web?query=%s"
url = "https://www.sogou.com/web?query={}"
key = input("请录入你要搜索的内容: ")
# url = url % key
url = url.format(key)
# print(url)
# 发送请求
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
}
response = requests.get(url,headers=headers)
if response.status_code == 200:
print(response.content.decode())
方式2: 使用字典指定请求参数
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
}
# 准备参数
key = input("请录入你要搜索的内容: ")
params = {"query":key}
basic_url = "https://www.sogou.com/web"
# 发送带有参数的请求
response = requests.get(basic_url, params=params, headers=headers)
# 获取请求结果打印
content = response.content.decode()
print(content)
- 小结:
- 如果发送GET请求需要指定参数怎么办
- 方式1: 拼接URL(推荐)
- 方式2: 通过params参数指定
- 原则: 使用哪种方式简单就用哪种方式