Python 使用代理请求库 - 获取请求仍然发送我自己的 IP
Python Requests library with proxies - Get request still send my own IP
我正在尝试为我的研究项目做一些网络抓取。不幸的是,我需要尝试抓取 Google Scholar 的一些数据,这阻止了我的请求。我已经尝试使用(多个)http 代理,但我的请求在 ~300 次尝试后仍然被阻止。
被阻止请求的结果 html 包含:
IP address: 145.109...<br/>Time: 2016-05-05T09:23:37Z<br/>URL:
https://scholar.google.nl/citations?hl=en&view_op=search_authors
&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&mauthors=Perry',
proxies=proxies, headers=headers)
的IP当然是有效的,我自己的IP不在代理列表中。我做错了什么吗?
编辑:为了完整起见,我也尝试过像 this 回答建议那样设置身份验证,但结果是一样的。
在您的 proxies
字典中,url 方案与您用于请求的方案不匹配,您使用 http
条目作为代理,然后创建一个https
请求。如果您为 https
方案广告代理,那么它应该可以工作。
我正在尝试为我的研究项目做一些网络抓取。不幸的是,我需要尝试抓取 Google Scholar 的一些数据,这阻止了我的请求。我已经尝试使用(多个)http 代理,但我的请求在 ~300 次尝试后仍然被阻止。
被阻止请求的结果 html 包含:
IP address: 145.109...<br/>Time: 2016-05-05T09:23:37Z<br/>URL:
https://scholar.google.nl/citations?hl=en&view_op=search_authors
&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&mauthors=Perry',
proxies=proxies, headers=headers)
的IP当然是有效的,我自己的IP不在代理列表中。我做错了什么吗?
编辑:为了完整起见,我也尝试过像 this 回答建议那样设置身份验证,但结果是一样的。
在您的 proxies
字典中,url 方案与您用于请求的方案不匹配,您使用 http
条目作为代理,然后创建一个https
请求。如果您为 https
方案广告代理,那么它应该可以工作。