Python3使用Requests库实现HTTP请求
1. 安装Requests库
运行Pip install requests ,界面如下:
c:\python>Pip install requests
2. 验证库是否安装成功
在Python的shell下输入import requests,不报错,则是安装成功。
3. 实现一个完整的请求与响应Get
#coding:utf-8
# 实现一个完整的请求与响应模型:GET
import requests
r =requests.get('http://www.baidu.com')
print(r.content)
4. 实现一个完整的请求与响应post
#coding:utf-8
# 实现一个完整的请求与响应模型:POST
import requests
postdata={'key':'value'}
r =requests.post('http://www.baidu.com/login',data=postdata)
print(r.content)
5. 带参数的GET请求
#coding:utf-8
# 带参数的GET请求
import requests
payload = {'Keywords': 'blog:qiyeboy','pageindex':1}
r =requests.get('http://zzk.cnblogs.com/s/blogpost', params=payload)
print (r.url)
6. 响应与编码
#coding:utf-8
# 响应与编码
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)
7. chardet:自动识别编码
#coding:utf-8
# chardet:自动识别编码
import requests
import chardet
r =requests.get('http://www.baidu.com')
print(chardet.detect(r.content))
r.encoding = chardet.detect(r.content)['encoding']
print (r.text)
8. 请求头headers处理
#coding:utf-8
# 请求头headers处理
import requests
user_agent = 'Mozilla/4.0(compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent}
r =requests.get('http://www.baidu.com',headers=headers)
print (r.content)
9. 响应码code和响应头headers处理
#coding:utf-8
# 响应码code和响应头headers处理
import requests
r =requests.get('http://www.baidu.com')
if r.status_code ==requests.codes.ok:
print (r.status_code) #响应码
print (r.headers)#响应头
print (r.headers.get('content-type'))#推荐使用这种获取方式,获取其中的某个字段
print (r.headers['content-type'])#不推荐使用这种获取方式
else:
r.raise_for_status()
10. Cookie处理:获取cookie
#coding:utf-8
# Cookie处理:获取cookie
import requests
user_agent = 'Mozilla/4.0(compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent}
r =requests.get('http://www.baidu.com',headers=headers)
#遍历出所有的cookie字段的值
for cookie in r.cookies.keys():
print(cookie+':'+r.cookies.get(cookie))
11. Cookie处理:设置cookie
#coding:utf-8
# Cookie处理:设置cookie
import requests
user_agent = 'Mozilla/4.0(compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent}
cookies =dict(name='qiye',age='10')
r =requests.get('http://www.baidu.com',headers=headers,cookies=cookies)
print (r.text)
12. Cookie处理:自动化
#coding:utf-8
# Cookie处理:自动化
import requests
loginUrl ='http://www.baidu.com/login'
s = requests.Session()
#首先访问登录界面,作为游客,服务器会先分配一个cookie
r =s.get(loginUrl,allow_redirects=True)
datas={'name':'qiye','passwd':'qiye'}
#向登录链接发送post请求,验证成功,游客权限转为会员权限
r = s.post(loginUrl,data=datas,allow_redirects= True)
print (r.text)
13. 重定向与历史
#coding:utf-8
# 重定向与历史
import requests
r =requests.get('http://github.com')
print (r.url)
print (r.status_code)
print (r.history)
14. 超时设置
requests.get('http://github.com', timeout=2) |
15. 代理设置
#coding:utf-8
# 代理设置
import requests
proxies = {
"http":"http://10.10.1.10:3128",
"https":"http://10.10.1.10:1080",
}
requests.get("http://example.org",proxies=proxies)