python搭建匿名代理池

python搭建匿名代理池

如果您是本站会员;我们将为您提供技术支持!!!

 

本篇文章给大家带来的内容是介绍如何用Python搭建匿名代理池?搭建匿名代理池的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

常听到很多人抱怨自己的IP因爬虫次数太多而被网站屏蔽,不得不频繁使用各种代理IP,却又因为网上的公开代理大部分都是不能使用,而又要花钱花精力去申请VIP代理,几番波折又遭屏蔽。特此写一篇如何利用Python搭建代理池的文章,以降低时间及精力成本,实现自动化获取活跃代理IP的功能。

运作原理

一、 网站代理获取

1. 爬免费代理网站的IP列表测试是否可用及是否是高匿

2. 若都是,则放进数据库,否则丢弃。

3. 重复第2步

二、 保证失效的代理能被尽快从代理池中挑出

1. 从爬虫数据库获取IP

2. 测试IP的可用性和匿名性

3. 如果可用且匿名,则保留,否则丢弃。

4. 重复第1步

说明①:可建立一个爬虫程序守护程序(Daemon),有此方面需要的小伙伴可自行谷歌,在此不多做介绍。

说明②:可建立一个对外代理信息接口,无论你用NodeJS或者Flask/Django或者PHP来写都没关系,在此也不多做介绍。

实现:

建议库: requests, BeautifulSoup, re, sqlite3。

其中,用requests库获取代理网站页面,用BeautifulSoup和re两库来进行代理信息获取,用sqlite3来对这些信息进行存取。

如果必要(如代理网站有反爬虫策略时),可用PhantomJS替代requests,或用相应库进行数据清理(如base64解码)。

下面简单展示一下各部分的代码:

首先是选择多个能爬取代理且不容易被屏蔽IP的网站,此处以proxy-list.org为例:

接下来是一段简易代理池框架类的代码,提供代理数据库的添加、删除、可连接性检测、匿名性检测

下面是对代理池进行去“失效IP”的代码:

反思

这个项目是我当年用Python练手写的,以现在的程度再来回顾,逻辑不够严谨,各类功能太过耦合,不少段落需要重写,因为代码是在校园网内所跑,所以还需要考虑到网络连接的稳定性,这就造成部分代码之间的混乱关系。

通过icanhazip.com来检测代理匿名性的方法或许有效,但却忽略了X-Forwarded-For的HTTP头,所以有很大风险,必须改进。

验证代理池内代理的有效性,需要多线程,目前的方案效率太低。

完整代码

放在此文章中的是代理池的核心代码,旨在提供各位读者能够自己实现的思路及参考,Ubuntu 16.04及Kali下用Python 2.7测试可运行。

 

RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
否条资源网 » python搭建匿名代理池

提供最优质的资源集合

立即查看 了解详情