
听说开源才能走的更高更远,才能让自己成长,所以尝试自己写的爬虫代理框架 IPProxyTools 。各位大神轻喷。
使用 scrapy 爬虫抓取代理网站,获取大量的免费代理 ip 。过滤出所有可用的 ip ,存入数据库以备使用。
github 地址: https://github.com/awolfly9/IPProxyTool
1 deleted 2017 年 2 月 14 日 抓代理很有用,学习了 |
2 imcocc 2017 年 2 月 14 日 via iPhone mysql 是不是有点重,有没有考虑 sqlite ? |
3 uzumaki 2017 年 2 月 14 日 via Android 已 star |
4 songdezu 2017 年 2 月 14 日 有了可用 ip list 之后, 怎么用户爬虫本身去轮流循环替换代理? |
5 awolfly9 OP |
7 Felldeadbird 2017 年 2 月 14 日 ip 有时效性啊。楼主入库多久会清理一次啊 |
8 hellopython 2017 年 2 月 14 日 via iPhone 学习了,谢谢分享!!! |
9 awolfly9 OP @Felldeadbird 抓取的所有免费 ip 或插入到表 free_ipproxy .如果验证之后的有效 ip 会放在单独的表里面。具体表名可以配置,例如抓取豆瓣就放在 douban 中。然后 free_ipproxy 每次抓取的时候回删掉半个小时之前的数据。代理 ip 验证会先验证当前表中之前已经验证过的代理,如果不可用就从当前表中移除,然后在验证 free_ipproxy 中的代理,如果可用就加入到表中。 |
10 dongxiaozhuo 2017 年 2 月 14 日 已经 star 。不过我的代理都是 zmap 扫描端口,验证请求 http://httbin.org/get 页面,正常返回即入库。数据库中峰值有 7W+ 可用的 http 代理,平均 3w+ 。 |
11 wujunze 2017 年 2 月 14 日 感谢分享 |
12 heissuperhan 2017 年 2 月 14 日 via iPhone 免费代理基本没有用 |
13 youyoumarco 2017 年 2 月 14 日 学习爬虫中。感谢分享 |
14 ijustdo 2017 年 2 月 14 日 免费代理不做验证 基本好多都没法用的 小伙子加上代理验证吧 这玩意 2007 年就做过 当时分布式抓取 分布式验证 服务端在 linux 客户端在 win 自动清理无效代理 当时是给分布式爬虫用的 |
16 hadoop 2017 年 2 月 14 日 @dongxiaozhuo 这个数量 nb ! |
17 jiezhi 2017 年 2 月 14 日 感谢分享, star 为敬 |
18 mclxly 2017 年 2 月 14 日 都 2017 了,为何不用 Python 3 写呢 |
19 onestar 2017 年 2 月 14 日 学习了,已 star |
21 Clarencep 2017 年 2 月 14 日 已 star |
22 yesineedroot 2017 年 2 月 14 日 感谢分享! |
23 kutata 2017 年 2 月 14 日 感谢分享~ |
24 holyzhou 2017 年 2 月 14 日 通过 8000 端口 我怎么能拿到最近的按照响应排序好的可用的 http 地址 好像 api 接口有点弱。 "http://127.0.0.1:8000/select?name=douban",我没理解这里的豆瓣是做什么用的 |
25 vh2h 2017 年 2 月 14 日 我提一个问题。你开源一个爬虫代理框架,和今天是情人节之间有什么关系呢?这之间没有任何逻辑可言嘛! |
26 lwd2136 2017 年 2 月 14 日 不错,已经收藏。 |
27 herozzm 2017 年 2 月 14 日 via Android 验证是关键,不然大量无用 ip ,功能就废了 |
28 qsnow6 2017 年 2 月 14 日 @dongxiaozhuo 之前也想要这么操作,有没有示例 |
29 Inn0cence 2017 年 2 月 14 日 via iPhone 爬虫菜学习。马可 学习下 |
30 yuansmin 2017 年 2 月 14 日 项目挺不错的,赞一个。不过这个瓶颈主要还是网上的免费代理不靠谱啊 |
31 holyzhou 2017 年 2 月 14 日 @awolfly9 感谢, 用了半天 还不错 改了 scan 的频率, 拿到的地址比我 1 块钱淘宝买的靠谱些,但也会有连接失败的,再者就是拿到的数量并不多(通过 http://127.0.0.1:8000/select?name=douban 拿到的) |
32 awolfly9 OP @holyzhou 可用的代理 ip 会随着时间的增加而增加。由于我抓取的站点比较少,而且那些站点更新免费 ip 也很慢,所以有效的 ip 会随着时间增加而不断积累。失效的 ip 会被淘汰。 |
34 gamecmt 2017 年 2 月 14 日 强,已 star |
35 botman 2017 年 2 月 14 日 好项目,表示去年也写过一个类似的项目,做爬虫必备良品啊,给 lz 顶一个先。 给点建议,既然是写框架就不建议把代理站点硬编码进去,因为现在不少开放代理站点需要进行 js 解析才能拿到代理,所以不同的开放代理站点的解析规则也是不同的,建议把这部分功能里独立开来,规则大家可以一起维护。 |
36 liangmishi 2017 年 2 月 14 日 感谢开源~ |
37 Nyloner 2017 年 2 月 14 日 哈哈,前段时间也写了一个类似项目: http://nyloner.cn/proxy |
38 mingyun 2017 年 2 月 14 日 130+ 收藏,厉害了 |
39 anexplore 2017 年 2 月 14 日 年前搞了一个扫描 ip:port 查找 http 代理的,功能还不完善。 https://github.com/anexplore/proxydetector.git |
40 DevilBin 2017 年 2 月 15 日 via Android 已 star |
42 fuxkcsdn 2017 年 2 月 15 日 那个...运行了半小时左右, 66ip 就抓到 6 个代理...不合理啊...只抓取首页吗?? 半小时就只抓到 279 个代理 IP ,略少... |
43 awolfly9 OP @fuxkcsdn 我只抓了首页,因为在之前的测试中发现后面的很多 IP 都失效了,抓下来也没什么作用。如果想要抓取多页,只需要到 sixsixip.py 中 self.urls = ['http://m.66ip.cn/%s.html' % n for n in range(1, 2)] 更改 2 为 想要抓取的页数 |