Python制作免费代理获取工具

导语

用Python写了个免费代理获取工具,在这里分享给大家。做这个工具的起因是经常在论坛看到有人问哪有可用的免费代理,可以用来测试学习一些需要代理的爬虫教程代码。于是我就想着与其分享一些网站,还不如直接写个获取工具来得方便实在。

废话不多说,让我们愉快地开始吧~

相关文件

关注“Charles的皮卡丘”,内回复‘免费代理’获取。

开发工具

Python版本:3.6.4

相关模块:

requests模块;

以及一些Python自带的模块。

安装Python并添加到环境变量,pip安装需要的相关模块即可。

使用方式

requests模块+正则表达式就可以很轻松地抓取所有目标网站上分享的免费代理,因此就略去实现原理的介绍了。

工具安装方式介绍如下:

将下载的源代码解压后放到python安装路径下的site-packages文件夹下:

这样该工具就可以像你安装的第三方包一样作为一个python模块导入代码中使用了。

猜测FAQ:

问:为什么不直接发布到pypi上呢?

答:Emmmm,我也不知道,反正我上传包的时候服务器告诉我我注册的账号没有权限发布python包,换了几个其他邮箱注册还是一样的提示,有点烦了,所以以后再说吧,这样用也挺方便的,还不会发生安装出错等意外情况,T_T强行安慰自己。

工具使用方式:

(1)简单获取免费代理

调用proxytool类的get方法即可:

运行结果如下:

其中num参数代表你需要获取的免费代理数量,若数量过大将只返回可以抓取到的免费代理数量而非用户指定值。

(2)高级使用

你可以通过调用proxytool类的print_help方法来查看该类的使用方式说明:

该类可供用户调用的方法共5个:

①get:获取并检测代理有效性。

可选参数包括:

num(需要的免费代理数量);

api(指定代理抓取的网站,比如你只想要西刺代理,你可以令api=xici,默认为随机抓取某个网站上的代理);

retry(尝试抓取代理的次数,默认值为5);

page(抓取某网站指定页的所有代理,默认抓取第一页,一般网站第一页的代理是最新且有效可能性最高的);

proxy_type(抓取http代理还是https代理还是都要,默认是都抓取);

quality(代理是高匿还是普通的还是都要,默认是都抓取);

headers(测试代理有效性时使用的请求头,默认是只加了user-agent的请求头);

method(使用GET还是POST方法测试代理的有效性);

host(利用代理请求host来测试代理是否有效,默认的测试host为百度)。

②get_proxy:只获取代理,而不检测代理的有效性。

可选参数包括:

page, proxy_type, quality, api。

含义同上。

③check_proxy:只测试代理的有效性。

可选参数包括

ip_port((ip, port)格式的数据);

host, headers, method。

含义同上。

④print_help():打印使用帮助

⑤print_about():打印作者信息

(3)其他

使用本模块前请务必先安装requests模块。

模块获取免费有效代理的效率低下,初衷是方便初学者学习爬虫,并不适合用于大规模抓取数据,当然如果你不介意爬个网站爬一年的话还是可以拿去用的。

更多

代码截止2018-09-01测试无误。

注意,下载后务必把文件名改成FreeProxy。

Charles的皮卡丘

Pikachu~