Python Requests 库网络爬虫指南
Requests 是 Python 的一个实用 HTTP 客户端库,完全满足如今网络爬虫的需求。与 Urllib 对比,Requests 不仅具备 Urllib 的全部功能;在开发使用上,语法简单易懂,符合 Python 优雅、简洁的特性;在兼容性上,完全兼容 Python 2 和 Python 3。
请求方式
HTTP 的请求方式分为 GET 和 POST。
GET 请求
URL 语法如下:
# 不带参数
url_without_params = "https://www.baidu.com/"
# 带参数
url_with_params = "https://www.baidu.com/s?wd=keyword"
注:如果一个 URL 有多个参数,参数之间用'&'连接。Requests 对于带参数的 URL 请求有两种处理方式:
import requests
# 第一种方式
r = requests.get('https://www.baidu.com/s?wd=keyword')
# 第二种方式
url = 'https://www.baidu.com/s'
params = {'wd': 'keyword'} # params 在 GET 请求中表示设置参数
r = requests.get(url, params=params)
print(r.url)
对于动态变化的参数,我们可以采用 %s 来占位的方式处理:
url_template = 'https://www.baidu.com/s?wd=%s'
search_term = 'keyword'
formatted_url = url_template % search_term
print(formatted_url)
输出结果:
https://www.baidu.com/s?wd=keyword
POST 请求
POST 请求常用来提交表单,表单数据就是 POST 的请求参数。在 Requests 中实现 POST 请求时,需要设置 data 参数,数据格式可以是字典、元组、列表或 JSON。
import requests
import json
# 字典类型
data = {'key1': 'value1', 'key2': 'value2'}
# 元组或列表(这里应该是元组的列表)
tuple_list = (('key1', 'value1'), (, ))
data_json = json.dumps(data)
r = requests.post(, data=data_json)
(r.text)



