爬虫 requests模块(吃牢饭集合)
每天一个入狱小技巧
response.text和response.content的区别
import requests
url = "https:www.baidu.com"
response = requetst.get(url)
response.encoding = 'utf8'
print(response.text)
|
response.text
- 类型: str
- 解码类型: requests模块自动根据HTTP 头部对响应的编码作出有根据的推测, 推测的文本编码
response.content
response.content进行decode解决中文乱码
- response.content.decode() 默认utf-8
- response.content.decode("GBK")
- utf-8
- gbk
- gb2312
- ascli (阿斯克码)
- iso-8859-1
response响应对象的其它常用属性或方法
response = requests.get(url) 中response是发送请求获取的响应对象; response响应对象中·除了text, cintent获取响应内容以外还有其它常用的属性或方法
- response.url 响应的url; 有时候响应utl和请求utl并不一致
- response.status_code 响应状态码
- response.requests.headers 响应对应的请求头
- response.headers 响应头
- response.headers._cookies 响应对应请求的cookie; 返回cookieJar类型
- response.cookies 响应的cookie (经过set-ccookie动作; 返回cookie类型)
- response.json() 自动将json字符串类型的响应内容转换python对象 (dict or list)
import requests
url = "https:www.baidu.com"
response = requetst.get(url)
response.encoding = 'utf8'
print(response.url) print(response.status_code) print(response.request.headers) print(response.headers) print(response.request._cookies) print(response.cookies)
|
post方法
实现方法
post数据来源 |
|
固定值 |
抓包比较不变值 |
输入值 |
抓包比较根据自身变化值 |
预设值-静态文件 |
需要提前从惊天html中获取 |
预设值-发请求 |
需要对指定地址发送请求获取数据 |
在客户端生成的 |
发现js模拟生成数据 |
requests.session
requests.session的作用
- 自动保存或者处理cookie, 下一次请求会带上前一次的cookie
场景
- 连续的多次请求, 自动处理过程中产生的cookie
使用方法 注意: sesson对象发送get或post请求参数, 与reques模块发送请求的参数完全一致
session = requests.session()
response = session.get(url, headers, ...)
response = session.post(url, data, ...)
|
作者: 我叫史迪奇
本文来自于:
https://sdq3.link/reptile-header-requests.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议