Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求
如:
# 导入 requests 包
import requests
# 发送请求(get请求)
res= requests.get('https://www.baidu.com/')
# 返回网页内容(文本格式)
print(res.text)
requests库
可以分为三个部分
请求方法
请求参数
响应解析
请求方法
-
requests.get(url, params, args) 发送 GET 请求到指定 url
-
requests.post(url, data, json, args) 发送 POST 请求到指定 url
-
requests.put(url, data, args) 发送 PUT 请求到指定
-
requests.delete(url, args) 发送 DELETE 请求到指定
-
request(method, url, args) 向指定的 url 发送指定的请求方法
-
requests.session(): 用于保持会话(session)
请求参数
-
url: 字符串格式,参数也可以直接写到url中
-
params:url参数,字典格式
-
data: 请求数据,字典或字符串格式
-
headers: 请求头,字典格式
-
cookies: 字典格式,可以通过携带cookies绕过登录
-
files: 字典格式,用于混合表单(form-data)中上传文件
-
auth: Basic Auth授权,数组格式 auth=(user,password)
-
timeout: 超时时间(防止请求一直没有响应,最长等待时间),数字格式,单位为秒
-
args为其他参数
例:
# 导入 requests 包
import requests
# 发送请求
url=''https://www.runoob.com/''
res= requests.get(url=url)
# 返回网页内容
print(res.text)
响应解析
- requests.status_code: 返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
- requests.reason: 响应状态的描述,比如 “Not Found” 或 “OK”
- requests.text:响应的文本格式,unicode 类型数据
- requests.content: 响应的二进制格式
- requests.encoding: r.text解码格式,可以通过修改requests…encoding='utf-8’来解决一部分中文乱码问题
- requests.apparent_encoding:真实编码,由chardet库提供的明显编码
- requests.json(): (注意,有括号)返回结果的 JSON 对象(字典)格式,慎用!如果响应文本不是合法的json文本,可能报错
- requests.headers: 返回响应头,字典格式
- requests.cookies:返回 响应的cookieJar对象,可以通过 requests.cookies.get(key)来获取响应cookies中某个key对应的值
- requests.url: 返回响应的 URL
- requests.next: 返回重定向链中下一个请求的 PreparedRequest 对象
- requests.ok: 检查 “status_code” 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
- requests. request: 返回请求此响应的请求对象
- requests. raise_for_status(): 如果发生错误,方法返回一个 HTTPError 对象
- requests. links: 返回响应的解析头链接
- requests. close(): 关闭与服务器的连接
- requests. elapsed: 返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
- requests. history:返回包含请求历史的响应对象列表(url)
- requests. is_permanent_redirect:如果响应是永久重定向的 url,则返回 True,否则返回 False
- requests. is_redirect:如果响应被重定向,则返回 True,否则返回 False
- requests. iter_content():迭代响应
- requests. iter_lines():迭代响应的行
例:
# 导入 requests 包
import requests
# 发送请求
res= requests.get('https://www.baidu.com/')
# 返回 http 的状态码
print(res.status_code)
# 响应状态的描述
print(res.reason)
# 返回编码
print(res.apparent_encoding)
(非作者允许,严禁转载)