导语
用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~