requests模块的学习
使用之前
- pip install requests
发起get,post,请求获取响应
- response = requests.get(url,headers) # 发起get请求,请求url地址对应的响应
- response = requests.post(url,data={请求体的字典}) # 发起post请求
response的用法
- response.text
- 该方式往往会出现乱码,出现乱码使用response.encoding="utf-8"
- response.content.decode()
- 把响应的二进制字节转化为str类型
- bytes---> str
- response.request.url # 发送请求的url地址
- response.request.headers # 请求头
- response.headers # 响应头
获取网页的正确打开方式(通过下面三种获取解码之后的字符串)
- 1、response.content.decode()
- 2、response.content.decode("gbk")
- 3、response.text
发起带headers的请求
- 为了模拟浏览器,获取和浏览器一样的内容
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0", "Referer": "http: // acc.hnczt.gov.cn / SpaceAction.do?method = list & ntype = 3", "Cookie": "Hm_lvt_35cde00bcde87c267839e0309e482db1 = 1554703285, 1554777297, 1554884326" } response = requests.get(url,headers)
使用超时参数
- pip install retrying
from retrying import retry
@retry(stop_max_attempt_number=3)
# 数字3代表的是下面的函数执行三次,有一次成功则跳过,没有一次成功则跑出异常
def func():
print("this is func")
raise ValueError("this is test error")
处理cookie相关的请求
-
直接携带cookie请求url地址
- 1、cookie放在headers中
headers = { "User-Agent":"...","Cookie":"cookie字符串" }
- 2、cookie字典传递给cookies参数
- requests.get(url, cookies=cookie_dict)
-
先发送post请求,获取cookie,带上cookie请求登录的页面
- 1、session = requests.session() # session具有的方法和requests一样
- 2、session.post(url, data, headers) # 服务器设置在本地的cookie存在session
- 3、session.get(url) # 会带上之前保存在session中的cookie, 能够请求成功