Python spider入门_3 Requests 库
Python spider入门_3 Requests 库
0 引言
Requests 库相当简单,你很快就能学完!
参考网站:Python requests 模块 | 菜鸟教程 (runoob.com)
使用 Requests 库前你要先导入 requests 模块:
import requests
导入后就可以发送 HTTP 请求,使用 requests 提供的方法可以向指定 URL 发送 HTTP 请求,例如:
1 | # 导入 requests 包 |
1 响应信息
每次调用 requests 请求后,会返回一个 response 对象,该对象包含具体的响应信息,如状态码,响应头,响应内容等:
1 | print(response.status_code) # 获取响应状态码 |
更多响应信息如下:
属性或方法 | 说明 |
---|---|
apparent_encoding | 编码方式 |
close() | 关闭于服务器的连接 |
content | 返回响应的内容,以字节为单位 |
cookies | 返回一个 CookieJar 对象,包含了从服务器发回的 cookie |
elapsed | 返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。 |
encoding | 解码 r.text 的编码方式 |
headers | 返回响应头,字典格式 |
history | 返回包含请求历史的响应对象列表(url) |
is_permanent_redirect | 如果响应是永久重定向的 url,则返回 True,否则返回 False |
is_redirect | 如果响应被重定向,则返回 True,否则返回 False |
iter_content() | 迭代响应 |
iter_lines() | 迭代响应的行 |
json() | 返回结果的 JSON 对象(结果需要以 JSON 格式编写的,否则会引发错误) |
links | 返回响应的解析头链接 |
next | 返回重定向链中下一个请求的 PreparedRequest 对象 |
ok | 检查 “status_code” 的值,如果小于 400,则返回 True,如果不小于 400,则返回 False |
raise_for_status() | 如果发生错误,方法返回一个 HTTPError 对象 |
reason | 响应状态的描述,比如 “Not Found” 或 “OK” |
request | 返回请求此响应的请求对象 |
status_code | 返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found) |
text | 返回响应的内容,unicode 类型数据 |
url | 返回响应的 URL |
一个具体的例子:
1 | import requests |
1 | https://www.runoob.com/try/ajax/json_demo.json |
请求 json 数据文件,返回 json 内容:
1 | # 导入 requests 包 |
1 | <bound method Response.json of <Response [200]>> |
2 requests 方法
requests 方法如下表:
方法 | 描述 |
---|---|
delete(url, args) | 发送 DELETE 请求到指定 url |
get(url, params, args) | 发送 GET 请求到指定 url |
head(url, args) | 发送 HEAD 请求到指定 url |
patch(url, data, args) | 发送 PATCH 请求到指定 url |
post(url, data, json, args) | 发送 POST 请求到指定 url |
put(url, data, json, args) | 发送 PUT 请求到指定 url |
request(method, url, args) | 向指定的 url 发送指定的请求方法 |
例子:
1 | # 导入 requests 包 |
1 | 200 |
设置请求头的例子:
1 | # 导入 requests 包 |
1 | 200 |
3 附加请求参数
发送请求我们可以在请求中附加额外的参数,例如请求头,查询参数,请求体等
例如:
1 | headers = {'User-Agent': 'Mozilla/5.0'} # 设置请求头 |
上述代码发送一个 POST 请求,并附加了请求头、查询参数和请求体
除了基本的 GET 和 POST 请求外,requests 还支持其他 HTTP 方法,如 PUT、DELETE、HEAD、OPTIONS 等
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 FlySheep の Blog!