python重定向响应信息头_人性化的Requests模块(响应与编码、header处理、cookie处理、重定向与历史记录、代理设置)...

Requests库是第三方模块,需要额外进行安装。Requests是一个开源库

pip install requests

去GitHub下载回来,进入解压文件,运行setup.py

比urllib2实现方式的代码量少,下面是POST请求:

import requests

postdata= {‘key‘:‘value‘}

r = requests.post(‘http://www.cnblogs.com/login‘,data=postdata)

print(r.content)

下面是get请求,但有些get请求url包含参数,如:www.xxx.com?keyword=bolg;guguobao&pageindex=1,怎么简化url,requests提供其他方法:

payload = {‘opt‘:1}

r = requests.get(‘https://i.cnblogs.com/EditPosts.aspx‘,params=payload)

print r.url

响应与编码

import requests

r = requests.get(‘http://www.baidu.com‘)

print ‘content -- >‘+ r.content

print ‘text -- >‘+ r.text

print ‘encoding -- >‘+ r.encoding

r.encoding=‘utf-8‘

print ‘new text-- >‘+r.text

uploading-image-85581.png

r.content 返回是字节,text返回文本形式

如果输出结果为encoding -->encoding -- >ISO-8859-1,则说明实际的编码格式是UTF-8,由于Requests猜测错误,导致解析文本出现乱码。Requests提供解决方案,可以自行设置编码格式,r.encoding=‘utf-8‘设置成UTF-8之后,“new text -->”就不会出现乱码。但这种方法笨拙。因此就有了:chardet,优秀的字符串/文件编码检测模块。

安装pip install chardet

安装完成后,使用chardet.detect()返回字典,其中confidence是检测精确度,encoding是编码方式

import requests,chardet

r = requests.get(‘http://www.baidu.com‘)

print chardet.detect(r.content)

r.encoding = chardet.detect(r.content)[‘encoding‘]

print(r.text)

运行结果

C:\Python27\python.exe F:/python_scrapy/ch03/3.2.3_3.py

{‘confidence‘: 0.99, ‘language‘: ‘‘, ‘encoding‘: ‘utf-8‘}

百度一下,你就知道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值