python爬虫requests设置代理ip_Python 爬虫的代理 IP 设置方法汇总

本文转载自:Python 爬虫的代理 IP 设置方法汇总 https://www.makcyun.top/web_scraping_withpython15.html

需要学习的地方:如何在爬虫中使用代理IP

Requests 和 Scrapy 中的代理 IP 设置。

摘要:对于采取了比较强的反爬措施网站来说,要想顺利爬取网站数据,设置随机 User-Agent 和代理 IP 是非常有效的两个方法,继上一篇文章介绍了随机 UserAgent 的设置方法之后,本文接着介绍如何在 Requests 和 Scrapy 中设置代理 IP。

上一篇文章见:

本文的目标测试网页选择下面这个 URL,请求该网页可以返回当前的 IP 地址:

下面,我们就先来说说 Requests 中如何设置代理 IP。

Requests

▌不使用代理

首先,先来看一下不使用代理 IP 的情况:

import requests

url = 'http://icanhazip.com'

try:

response = requests.get(url) #不使用代理

print(response.status_code)

if response.status_code == 200:

print(response.text)

except requests.ConnectionError as e:

print(e.args)

运行上面的程序,会返回我们电脑本机的 IP,可以通过百度查询 IP 地址对比一下就知道了。

200

124.238.223.xxx # 后三位隐去了

[Finished in 0.8s]

▌使用代理

然后,我们测试一下使用代理后的情况。

常见的代理包括 HTTP 代理和 SOCKS5 代理,前者可以找一些免费代理 IP 进行测试,由于我电脑上使用的是 Shadowsocks,所以就介绍一下 SOCKS5 代理的设置。

首先,电脑上要安装有 Shadowsocks ,如果你还没听过或者使用过这个神器,可以参考下我之前写的篇文章:

启动该软件后默认会在 1080 端口下创建 SOCKS5 代理服务,代理为:127.0.0.1:1080,然后我们在 Requests 中使用该代理,方法很简单只需要添加一项 proxies 参数即可:

proxies = [

{'http':'socks5://127.0.0.1:1080'},

{'https':'socks5://127.0.0.1:1080'}

]

proxies = random.choice(proxies)

print(proxies)

url = 'http://icanhazip.com'

try:

response = requests.get(url,proxies=proxies) #使用代理

print(response.status_code)

if response.status_code == 200:

print(response.text)

except requests.ConnectionError as

你可能感兴趣的:(python爬虫requests设置代理ip_Python 爬虫的代理 IP 设置方法汇总)