具有代理的Python请求库 - 获取请求仍然发送我自己的IP

时间:2016-05-05 09:31:50

标签: python web-scraping python-requests http-proxy

我正在为我的学习项目做一些网络抓取。不幸的是,我需要尝试抓取一些阻止我的请求的Google学术搜索数据。我曾尝试使用(多个)http代理,但我的请求在约300次尝试后仍然被阻止。

来自被阻止的请求的结果html包含:

 IP address: 145.109...<br/>Time: 2016-05-05T09:23:37Z<br/>URL: 
 https://scholar.google.nl/citations?hl=en&amp;view_op=search_authors
 &amp;mauthors=Perry<br/>

上面的IP是我自己的,而我的代理dict(它随机从列表中选择一个代理)并获得请求如下:

proxies = {'http': 'http://<username>:<password>@107.182....:<port>'}

result = requests.get('https://scholar.google.nl/citations?hl=en&         
                      amp;view_op=search_authors&amp;mauthors=Perry',
                      proxies=proxies, headers=headers)

IP当然有效且有效,我自己的IP不包含在代理列表中。我做错了吗?

编辑:为了完整性,我还尝试设置this答案建议的身份验证,但结果是一样的。

1 个答案:

答案 0 :(得分:2)

在您的proxies字典中,网址方案与您针对您的请求使用的网址不匹配,您为代理使用http条目,但随后生成{{ 1}}请求。如果您使用https方案的代理,那么它应该有效。