1.Cookies构建: 字典格式,使用函数
cookie = dict(cookies_are = 'text')
2.请求头构建: 构建成字典格式
header = {'User-Agent':'UA','Referer':'address','Host':'host name','DNT':'num'}
3.requests.get方法: requests的get方法是最常见的请求方法
res = requests.get(url,cookies = cookie,headers = header)
- 解码编码
res.encoding = 'utf-8/gb-2312'
- 获取响应中的cookie或headers
res.cookies
res.headers
- 获取响应的html源码
res.text
- 获取响应中的二进制数据(图片等)
from io import BytesIO
res.content
i = Image.open(BytesIO(r.content))
- 获取响应中的json数据
res.json()
4.requests.post方法
post方法相对于get方法可以传递更复杂的参数,使用 参数data
#构建data参数
dat = (('key1', 'value1'), ('key1', 'value2'))
#构建post请求
r = requests.post('http://httpbin.org/post', data=dat)
5.使用代理
代理可单独储存,调用时以 proxies参数 传入
proxy = {
'http': '120.25.253.234:812',
'https' '163.125.222.244:8123'
}
req = requests.get(url, headers=heads,proxies=proxy)
6.会话维持
使用 session函数 维持会话,并请求页面,代码如下:
session = requests.Session()
session.get('http://httpbin.org/cookies/set/number/12345')
response = session.get('http://httpbin.org/cookies')
- ses = requests.Session()#创建会话对象
- ses.requests.headers.update({'User-Agent':"UA"})#构建请求头
- ses.get(url) Or ses.post(url,data)#使用session请求数据
- 注: Session()函数具有Requests函数的所有功能, 但方法级别的参数若未在会话对象中则不能跨请求传递
7.关于字符串分割: 字符串分割使用 split()函数 ,使用代码如下
- 单符号分割
txt_1 = txt.split('symbol')
- 多符号分割
txt_1 = txt.split('symbol_1').split('symbol_2)