@IT·互联网python笔记

python3 Requests常用操作

2017-06-20  本文已影响1348人  我是一只菜鸟呀

  Requests是用Python语言编写的基于urllib,采用Apache2 Licensed开源协议的HTTP库。它比urllib库更加方便。是一个简单易用的HTTP库。

安装

pip3 install requests

各种请求方式

get方式(带参数)

# 方式一:

payload = {'key1':'value1','key2':'value2'}

# 注意字典里值为None的键都不会被添加到 URL 的查询字符串里。

r=requests.get("http://httpbin.org/get",params=payload,headers=dict,timeout = 1)

# 方式二:

r=requests.get("http://httpbin.org/get?name=hello&age=12)

post方式

r=requests.get("http://httpbin.org/get",data=payload,headers=dict)

文件上传

files={'file':open('report.xls','rb')}

r=requests.post(url,files=files)

response对象

属性:

response.status_code

response.content  #获取二进制数据,返回字节流,通常用在下载图片/视频中。

response.text    #响应内容,字符串类型,不需要decode

response.json()  #对于返回的json数据,可以调用该方法获得json对象,实际上是执行了json.loads(response.text))

response.cookies   #urllib中需要声明cookiejar,handler,opener等

response.url

response.encoding

response.headers

状态码:可以用有含义的值来代替

r=requests.get("http://httpbin.org/get",data=payload,headers=dict)

if r.status_code == requests.codes.ok:  #if r.status_code == 200:

    print("successfully")

会话维持

前一次访问获得的cookie,被后一次的访问使用。

通过session来完成

import requests

s  = requests.Session()

s.get("https://httpbin.org/cookies/set/number/123456")  #访问url,获得响应的cookie

response = s.get("https://httpbin.org/cookies")

证书认证

对于https的网站,访问时,首先会对证书进行验证

r = requests.get("https://www.12306.cn")  #SSLError,因为12306的证书非官方

可以通过指定verify参数来决定是否进行证书认证

r = requests.get("https://www.12306.cn",verify=False)

#但仍然有警告信息,可以通过以下方法消除

from requests.packages import urllib3

urllib3.disable_warnings()

可以通过指定证书

r = requests.get("https://www.12306.cn",cert=(path))

认证设置

有些网站在访问时需要输入用户名和密码,可以通过auth参数来制定

r = requests.get(url,auth=('user','123')

代理设置

http/https代理

#如果代理有账号密码,可以通过以下方式指定;没有的话,可以去掉

proxies = {

    "http":"http://user:password@127.0.0.1:9743"

}

r = requests.get("www.baidu.com",proxies = proxies)

socks代理

pip3 install 'requests[socks]'

proxies = {

    "http":"socks5://127.0.0.1:9743"

}

r = requests.get("www.baidu.com",proxies = proxies)

上一篇下一篇

猜你喜欢

热点阅读