【发布时间】:2016-12-22 21:56:08
【问题描述】:
我可以从我的机器连接到 verizon 站点:
>>> import requests
>>> res=requests.get('https://tv.verizon.com/api/fullSearch/as/rows/30/start/0?assetTypeCode=movies')
>>> res
<Response [200]>
但是,如果我使用代理——它在另一个网站上运行,比如 Google——它不会返回响应:
>>> res=requests.get(
'https://tv.verizon.com/api/fullSearch/as/rows/30/start/0?assetTypeCode=movies',
proxies={
'http': 'http://xx:yy@23.82.141.126:29842' ,
'https': 'http://xx:yy@23.82.141.126:29842'}
)
[ request just hangs... ]
但在另一个网站上它可以工作:
>>> res=requests.get(
... 'https://google.com',
... proxies={
... 'http': 'http://xx:yy@23.88.141.126:29842',
... 'https': 'http://xx:yy@23.88.141.126:29842'}
... )
>>> res
<Response [200]>
为什么会这样?我如何通过代理成功请求 Verizon?
【问题讨论】:
-
可能是因为 Verizon 故意丢弃来自这些代理的数据包......可能是因为他们过去收到过恶意请求。虽然如果它“挂起”,它可能会永远通过代理。
-
这似乎是一个广泛的问题。你怎么确定你正在使用代理?也许您可以重新制定它,以便获得使用代理的帮助?无论哪种方式,这对我来说似乎都不是一个明确的问题(至少在我几乎完全没有代理经验的情况下)
-
@TemporalWolf 我不这么认为——我以前从未使用过这些代理。我现在只是在测试它。
-
block proxies 有很多方法。如果您使用的是公共代理,那么仅仅因为您没有滥用它并不意味着其他人没有。