下面我们来看下各个库的代理设置方式。在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学习Python的小伙伴们,大几千了吧,各种各样的人群都有,特别喜欢看到这种大家一起交流解决难题的氛围,群资料也上传了好多,各种大牛解决小白的问题,这个Python群:330637182 欢迎大家进来一起交流讨论,一起进步,尽早掌握这门Python语言。
2. Urllib
首先我们以最基础的 Urllib 为例,来看一下代理的设置方法,代码如下:
如果遇到需要认证的代理,我们可以用如下的方法设置:
此处需要一个 Socks 模块,可以通过如下命令安装:
pip3 install PySocks
本地我有一个 SOCKS5 代理,运行在 9742 端口,运行成功之后和上文 HTTP 代理输出结果是一样的:
运行结果:
如果需要使用 SOCKS5 代理,则可以使用如下方式:
在这里需要额外安装一个 Socks 模块,命令如下:
pip3 install "requests[socks]"
运行结果是完全相同的:
这样也可以设置 SOCKS5 代理,运行结果完全相同,相比第一种方法,此方法是全局设置,不同情况可以选用不同的方法。
4. Selenium
Selenium 同样也可以设置代理,在这里分两种介绍,一个是有界面浏览器,以 Chrome 为例介绍,另一种是无界面浏览器,以 PhantomJS 为例介绍。
Chrome
对于 Chrome 来说,用 Selenium 设置代理的方法也非常简单,设置方法如下:
可以看到 origin 同样为代理 IP 的地址,代理设置成功。
如果代理是认证代理,则设置方法相对比较麻烦,方法如下:
在这里需要在本地创建一个 manifest.json 配置文件和 background.js 脚本来设置认证代理,运行之后本地会生成一个 proxy_auth_plugin.zip 文件保存配置。
运行结果和上例一致,origin 同样为代理 IP。
PhantomJS
对于 PhantomJS,代理设置方法可以借助于 serice_args 参数,也就是命令行参数,代理设置方法如下:
运行结果的 origin 同样为代理的 IP,设置代理成功。
如果需要认证,那么只需要再加入 --proxy-auth 选项即可,这样参数就改为:
结语
本节介绍了前文所介绍的请求库的代理设置方法,稍作了解即可,后面我们会使用这些方法来搭建代理池和爬取网站,进一步加深印象。
领取专属 10元无门槛券
私享最新 技术干货