学习
实践
活动
工具
TVP
写文章

python requests进阶

python requests

requests 库 用来进行http 请求的第三方库,接口自动化测试、爬虫、基本都可以用该库来进行,用法多种多样,实战中也需要与其它库搭配起来共同使用。

首先基本用法:

1、requests.get / post / put 方法进行普通的请求:

eg:

resp = requests.get(url=url,cookies=cookies,params=data,headers=headers,verify=Fal

se,timeout=(5,30))

其中 url 为默认请求地址

params 为 请求字段内容 字典格式

hearders 在实际应用中比较复杂,具体在进阶中运用

另外针对结果我们可以用:

resp.url 请求url地址

resp.tex 响应内容(所有)

resp.status 响应状态码

进阶内容:

1、头文件自定义:

现实应用,头文件总是不能省略和内容较多的情况所以需要自定义头文件内容,方法是:通过字典来手动定义

ifheadersisNone:

headers = {

'Accept':'*/*',

'Accept-Encoding':'gzip, deflate, sdch',

'Accept-Language':'zh-CN,zh;q=0.8',

'Cache-Control':'max-age=0',

'X-Requested-With':'XMLHttpRequest',

'Connection':'close',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)

}

2、token(cookie)通过头文件来运用

现实中cookie的用法 部分通过头文件携带链接来实现,因此可以用手动带入的方法来实现。

ifheadersisNone:

headers = {

'Accept':'*/*',

'Accept-Encoding':'gzip, deflate, sdch',

'Accept-Language':'zh-CN,zh;q=0.8',

'Cache-Control':'no-cache',

'Connection':'keep-alive',

'Cookie':'SASID='+cookie,

'Host':domain[8:],

'Origin': domain,

'Pragma':'no-cache',

'Referer': domain,

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)

}

3、综合应用:

项目中根据实际应用重新封装 requests 请求

defhttp_request(url,method,data,headers =None,cookies =None,files =None):

headers =None

resp=None

error_str =None

text =None

surl =None

try:

ifmethod =="GET":

result = requests.get(url=url,cookies=cookies,params=data,headers=hea

ders,verify=False,timeout=(5,30))

elifmethod =="POST":

result = requests.post(url=url,cookies=cookies,data=data,headers=head

ers,verify=False,timeout=(5,60),files=files)

text = result.text

surl = result.url

4、异常捕获

可以根据该库自带的方法来抓取,再进行异常捕获,重点语句:requests.

raise_for_status

resp = result.raise_for_status()

抛出的异常有:请求超时、最大重定向次数、http错误、请求异常等

exceptTimeoutasresp:

error_str ="Timeout Error:"+str(resp)

exceptTooManyRedirectsasresp:

error_str ="TooManyRedirects Error:"+str(resp)

exceptHTTPErrorasresp:

error_str ="HTTP Error:"+str(resp)

exceptRequestExceptionasresp:

error_str ="RequestException:"+str(resp)

exceptExceptionasresp:

error_str ="Unknow Error:"+str(resp)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181114G1ARZJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券