requests(1)

2020-07-26  本文已影响0人  啊哈_6377

2、requests请求

请求方法:requests.get  requests.post  requests.put requests.delete  requests.head  requests.options

请求参数传递:get方法params参数,字典中含字段值为none的将不会被加入到url

    post方法使用data参数,dict/元祖类型(使用同一个key名时可使用元祖列表)变量传递表单信息;如果传递的信息非表单形式,可以直接使用json参数直接传递;如果上传的是文件,可直接使用files参数,文件内容为以二进制方式打开(rb,wb,ab)的字节流,大文件可使用requests-toolbelt将请求作为数据流

定制请求头:使用dict将请求头传递给headers参数

3、requests响应

包含方法:

r.text  按照r.enconding设置的编码输出响应内容

r.content 返回字节类型的响应内容,会自动解码gzip,deflate传输编码的响应数据

r.encoding()  设置编码

r.json()  返回json响应内容,解码成功不能代表访问成功

r.status_code 返回响应状态码,当返回状态码为200时requests.codes.ok返回true

r.raise_for_status() 当返回为4XX,5XX时 ,可使用此函数抛出异常,返回200调用此函数返回none

r.headers 返回字典类型的响应头

4、cookie

获取指定cookie:r.cookies["键名"]

发送cookies:可指定参数cookies=字典类型的值

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'

r = requests.get(url, cookies=jar)

r.text

5、重定向

除了head方法外,使用其他方法请求都会自动重定向

r.history  可用于追踪重定向,返回的是一个response对象列表,为完成这个请求而创建的对象,由老至近的顺序排序

禁止重定向:请求时参数allow_redirects=Flase

使用head请求,开启重定向:allow_redirects=True

6、超时

发送请求时,可指定超时时间:timeout=0.001,此为连接上服务器的时间,并非完成所有内容下载的时间,超时未连接上服务器会抛出异常

上一篇下一篇

猜你喜欢

热点阅读