requests 库
程序员文章站
2022-05-08 09:58:31
...
requests库
虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 “HTTP for Humans”,说明使用更简洁方便。
发送get请求:
发送get请求,直接调用request.get
就可以了。想要发送什么类型的请求,就调用什么方法。
response = requests.get('http://www.baidu.com')
request的一些属性:
import requests
kw = {'wd':'中国'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s", params = kw, headers = headers)
# 查看响应内容,response.text 返回的是Unicode格式的数据
print(response.text)
# 查看响应内容,response.content返回的字节流数据
print(response.content)
# 查看完整url地址
print(response.url)
# 查看响应头部字符编码
print(response.encoding)
# 查看响应码
print(response.status_code)
request.text 和 request.content 的区别:
1.request.content:这个是直接从网络上面抓取的数据。没有经过任何解码。所以是一个bytes类型。其实在硬盘上和网络上传输的字符串都是bytes类型。
2.request.text:这个是str的数据类型,是request库将request.context进行解码的以有时候可能会猜测错误,就会导致解码产生乱码。这时候就应该使用**request.context.decode(“utf-8”)**进行手动解码。
发送post请求:
发送post请求非常简单。直接调用requests.post()方法就可以了。
如果返回的是json数据。那么可以调用requests.json()
来将json字符串转为字典或者列表。
使用代理:
在请求方法中,传递proxies参数就可以了
处理cookie:
如果想要在多次请求*享cookie。那么应该使用session。示例代码如下:
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
data = {
'email': '15546406529',
'password': 'jdeert123'
}
login_url = 'http://www.renren.com/PLogin.do'
dapeng_url = 'http://www.renren.com/880151247/profile'
session = requests.Session()
session.post(login_url,data=data,headers=headers)
response = session.get(dapeng_url)
with open('renren.html','w',encoding='utf-8') as f:
f.write(response.text)
print('ok')
下一篇: 杂乱无章的小笔记