request python disable proxy_Python requests.exceptions 模块,ProxyError() 实例源码 - 编程字典...

该段代码定义了一个名为download的方法,用于通过requests模块进行HTTP请求。方法接受参数method(请求类型)、url(目标URL)、proxyEnable(是否使用代理)和其他请求选项。如果proxyEnable为False或没有可用的代理,它将直接发起请求。如果使用代理,它会从代理列表中取出一个并尝试使用,遇到ProxyError异常时会回退并尝试下个代理。
摘要由CSDN通过智能技术生成

def download(self, method, url, proxyEnable=False, **kwargs):

'''

:param method: 'GET','POST','PUT','DELETE','HEAD','OPTIONS'

:param url: url

:param proxyEnable: use proxy or not

:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`

:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`

:param json: (optional) json data to send in the body of the :class:`Request`

:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`

:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`

:param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``)

for multipart encoding upload.``file-tuple`` can be a 2-tuple ``('filename', fileobj)``,

3-tuple ``('filename', fileobj, 'content_type')``or a 4-tuple ``('filename', fileobj,

'content_type', custom_headers)``, where ``'content-type'`` is a string defining the

content type of the given file and ``custom_headers`` a dict-like object containing

additional headers to add for the file

:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth

:param timeout: (optional) How long to wait for the server to send data

before giving up, as a float, or a :ref:`(connect timeout, read

timeout) ` tuple

:param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed

:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy

:param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``

:param stream: (optional) if ``False``, the response content will be immediately downloaded

:param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair

:return: Response if failed Response=None

'''

if (not proxyEnable) or (proxyEnable and not self.proxies):

if proxyEnable and not self.proxies:

logger.warning('No initialization proxy file or proxy file is not available')

try:

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

except Exception as e:

logger.warning(e)

else:

try:

oneProxy = self.proxies.pop(0)

self.proxies.append(oneProxy)

key = oneProxy.split(":")[0]

oneProxy = {key: oneProxy}

logger.debug('USE PROXY [-]%s' % oneProxy.values()[0])

return requests.request(method, url, proxies=oneProxy, **kwargs)

except ProxyError:

return self.download(method, url, proxyEnable, **kwargs)

except Exception as e:

logger.warning(e)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值