便宜VPS主机精选
提供服务器主机评测信息

python requests的用法介绍

一、requests的常用方法使用样式

1.requests.get(url, params=None, **kwargs)

向HTML网页提交GET请求的方法,对应于HTTP的POST

2.requests.post(url, data=None, json=None, **kwargs)

向HTML网页提交POST请求的方法,对应于HTTP的POST

3.requests.request(method, url, **kwargs)

构造一个请求,支撑一下各方法的基础方法

4.requests.head(url, **kwargs)

获取HTML网页头信息的方法,对应于HTTP的HEAD

5.**kwargs:控制访问的参数,均为可选项,共13个

1)params:字典或字节序列,作为参数增加到url中

kv = {'key1':'value1','key2':'value2'}
r = requests.request('GET','http://www.baidu.com',params=kv)

2)data:字典、字节序列或文件对象,作为Request的对象

kv = {'key1':'value1','key2':'value2'}
r = requests.request('POST','http://www.baidu.com',data=kv)

3)jsonJSON格式的数据,作为Request的内容

kv = {'key1':'value1','key2':'value2'}
r = requests.request('POST','http://www.baidu.com',json=kv)

4)headers字典,HTTP定制头

hd = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36"}
r = requests.request('POST','http://www.baidu.com',headers=hd)

5)cookies字典或CookieJar,Request中的cookie
6)auth:元组,支持HTTP认证功能
7)files:字典类型,传输文件

fs = {'file':open('data.xls','rb')}
r = requests.request('POST','http://www.baidu.com',files=fs)

8)timeout设定超时时间,秒为单位

r = requests.request('GET','http://www.baidu.com',timeout=10)

9)proxies字典类型,设置访问代理服务器,可以增加登录认证

pxs = {'http':'http://user:pass@10.10.10.1:1523'}
r = requests.request('GET','http://www.baidu.com',proxies=pxs)

10)allow_redirectsTrue/False,默认为Ture,重定向开关
11)streamTrue/False,默认为True,获取内容立即下载开关
12)verifyTrue/False,默认为True,认证SSL证书开关
13)cert本地SSL证书路径

 

6.请求会话

在很多时候我们开发的爬虫需要登录,登录后我们需要记录登录状态,否则无法爬取登录后才能爬取的网页,在request中提供了requests.Session()这样的类:

import requests
s = requests.Session()
s.get('http://httpbin.org/get')

这样我们的request只要调用一次登录入口就会自动维护网站的Session记录我们的登录状态,以后我们可以直接使用request访问登录才能访问的页面。

 7.Cookie获取

我们可以使用cookies来获取响应中的cookie: 如果某个响应中包含一些 cookie,你可以快速访问它们:

req = requests.get("https://ptorch.com")

req = requests.get("https://ptorch.com")
print(req.cookies)
print(req.cookies['laravel_session'])

要想发送你的cookies到服务器,可以使用cookies参数:

cookies = dict(cookies_are='working Test')

req = requests.get("http://httpbin.org/cookies", cookies=cookies)
print(req.text)
# '{"cookies": {"cookies_are": "working Test"}}'

Cookie的返回对象为RequestsCookieJar,它的行为和字典类似,但界面更为完整,适合跨域名跨路径使用。你还可以把Cookie Jar传到Requests中:

jar = requests.cookies.RequestsCookieJar()
jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')
jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')
url = 'http://httpbin.org/cookies'
req = requests.get(url, cookies=jar)
print(req.text)
# '{"cookies": {"tasty_cookie": "yum"}}'

保存cookie方便下次访问,我们需要将CookieJar转为字典或者将字典转为CookieJar

#将CookieJar转为字典:
cookies = requests.utils.dict_from_cookiejar(r.cookies)

#将字典转为CookieJar:
ookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)

8.下载图片

有时候我们想下载我们爬取页面的img图片,你可以使用requests请求图片,获取response.content文本信息,实际上获取的是图片的二进制文本,然后保存即可:

import requests

response = requests.get("https://ptorch.com/img/logo.png")
img = response.content
open('logo.jpg', 'wb').write(response.content)

如果要下载验证码,可以使用上面的会话请求加载这里的下载代码即可。

未经允许不得转载:便宜VPS测评 » python requests的用法介绍