Crawlera:407" Bad Auth"错误信息

时间:2018-03-26 11:28:09

标签: python python-requests scrapinghub

使用Crawlera的示例代码获取带代理的GET请求。

import requests

url = "http://httpbin.org/ip"
proxy_host = "proxy.crawlera.com"
proxy_port = "8010"
proxy_auth = "<APIKEY>:" # Make sure to include ':' at the end
proxies = {
      "https": "https://{}@{}:{}/".format(proxy_auth, proxy_host, proxy_port),
      "http": "http://{}@{}:{}/".format(proxy_auth, proxy_host, proxy_port)
}

r = requests.get(url, proxies=proxies, verify=False)

我收到407 Bad Proxy Auth错误。我已经三倍检查API_KEY是否正确。

回复标题:

{
   'Proxy-Connection': 'close',
   'Proxy-Authenticate': 'Basic realm="Crawlera"',
   'Transfer-Encoding': 'chunked',
   'Connection': 'close',
   'Date': 'Mon, 26 Mar 2018 11:18:05 GMT',
   'X-Crawlera-Error': 'bad_proxy_auth',
   'X-Crawlera-Version': '1.32.0-07c786'
}

请求已更新。

$ pip freeze |grep requests
requests==2.8.1

2 个答案:

答案 0 :(得分:0)

我设法通过添加Proxy-Authorization标题来实现它。

proxy_auth  = "<APIKEY>:"
headers = {
   # other headers ...
   "Proxy-Authorization": 'Basic ' + base64.b64encode(proxy_auth)
}

proxies = {
      "https": "https://{}:{}/".format(proxy_host, proxy_port),
      "http": "http://{}:{}/".format(proxy_host, proxy_port)
}


r = requests.get(url, headers=headers, proxies=proxies, verify=False)

答案 1 :(得分:0)

如果要保留“爬网”方式,可以尝试升级请求客户端:

pip install requests --upgrade

我遇到了同样的问题,并且您的解决方案有效,但是在进一步搜索后,我发现了this解决方案:

requests客户端升级到 2.19 ...为我工作,并且我可以继续使用Crawlera示例脚本。