Python urllib3 重定向太多
Python urllib3 too many redirects
我现在学习 Python,我想创建一个简单的工具来打开几个网站。我有下一个代码:
#!/usr/bin/python
import urllib3, ssl, certifi
from urllib3 import Retry, Timeout
def openurl(url, method = "get"):
retries = Retry(connect=500, read=2, redirect=500)
http = urllib3.PoolManager(
cert_reqs = 'CERT_REQUIRED',
ca_certs = certifi.where(),
retries = retries
)
con = urllib3.connection_from_url(url)
r = con.request(method, '/trades');
openurl("http://www.steamgifts.com")
但是在这个站点脚本上 returns Caused by ResponseError('too many redirects',)
我尝试通过 Retry(connect=500, read=2, redirect=500)
解决此问题,但我没有看到任何变化。
该网站正在阻止某些用户代理。您可以通过为请求设置自己的 http headers 来假装是一个真正的网络浏览器而不是偷偷摸摸的黑客。我不熟悉 urllib3,但是 requests 非常简单。
>>> requests.get('http://www.steamgifts.com/trades')
<Response [403]>
>>> requests.get('http://www.steamgifts.com/trades',
headers={'User-Agent': 'internet explorer or something'})
<Response [200]>
我现在学习 Python,我想创建一个简单的工具来打开几个网站。我有下一个代码:
#!/usr/bin/python
import urllib3, ssl, certifi
from urllib3 import Retry, Timeout
def openurl(url, method = "get"):
retries = Retry(connect=500, read=2, redirect=500)
http = urllib3.PoolManager(
cert_reqs = 'CERT_REQUIRED',
ca_certs = certifi.where(),
retries = retries
)
con = urllib3.connection_from_url(url)
r = con.request(method, '/trades');
openurl("http://www.steamgifts.com")
但是在这个站点脚本上 returns Caused by ResponseError('too many redirects',)
我尝试通过 Retry(connect=500, read=2, redirect=500)
解决此问题,但我没有看到任何变化。
该网站正在阻止某些用户代理。您可以通过为请求设置自己的 http headers 来假装是一个真正的网络浏览器而不是偷偷摸摸的黑客。我不熟悉 urllib3,但是 requests 非常简单。
>>> requests.get('http://www.steamgifts.com/trades')
<Response [403]>
>>> requests.get('http://www.steamgifts.com/trades',
headers={'User-Agent': 'internet explorer or something'})
<Response [200]>