听说今天情人节。开源一个爬虫代理框架,各位大神轻喷

2017-02-14 00:12:29 +08:00
 awolfly9

听说开源才能走的更高更远,才能让自己成长,所以尝试自己写的爬虫代理框架 IPProxyTools 。各位大神轻喷。

使用 scrapy 爬虫抓取代理网站,获取大量的免费代理 ip 。过滤出所有可用的 ip ,存入数据库以备使用。

github 地址: https://github.com/awolfly9/IPProxyTool

7120 次点击
所在节点    Python
43 条回复
deleted
2017-02-14 00:57:50 +08:00
抓代理很有用,学习了
imcocc
2017-02-14 03:36:22 +08:00
mysql 是不是有点重,有没有考虑 sqlite ?
uzumaki
2017-02-14 03:44:05 +08:00
已 star
songdezu
2017-02-14 04:34:20 +08:00
有了可用 ip list 之后, 怎么用户爬虫本身去轮流循环替换代理?
awolfly9
2017-02-14 07:17:39 +08:00
@imcocc 最开始就是尝试用的 splite ,后来改成 mysql 是为了数据更长久的保存,以及后续分布式部署。

@uzumaki 如果有什么问题,请给我反馈

@songdezu 目前的做法是从服务器端口获取到 ip list 之后,在 scrapy 请求的 Middleware 中循环从 ip list 中取 ip ,如果发现 ip 不可用就马上删除 ip 。当 ip list 剩余很少时,重新向服务器请求。具体可以参考我后续开源的利用这个代理 ip 抓取豆瓣电影以及书籍的爬虫
awolfly9
2017-02-14 07:21:37 +08:00
@deleted 共同进步
Felldeadbird
2017-02-14 09:22:39 +08:00
ip 有时效性啊。楼主入库多久会清理一次啊
hellopython
2017-02-14 09:27:39 +08:00
学习了,谢谢分享!!!
awolfly9
2017-02-14 09:35:34 +08:00
@Felldeadbird 抓取的所有免费 ip 或插入到表 free_ipproxy .如果验证之后的有效 ip 会放在单独的表里面。具体表名可以配置,例如抓取豆瓣就放在 douban 中。然后 free_ipproxy 每次抓取的时候回删掉半个小时之前的数据。代理 ip 验证会先验证当前表中之前已经验证过的代理,如果不可用就从当前表中移除,然后在验证 free_ipproxy 中的代理,如果可用就加入到表中。
dongxiaozhuo
2017-02-14 09:52:20 +08:00
已经 star 。不过我的代理都是 zmap 扫描端口,验证请求 http://httbin.org/get 页面,正常返回即入库。数据库中峰值有 7W+ 可用的 http 代理,平均 3w+ 。
wujunze
2017-02-14 09:58:10 +08:00
感谢分享
heissuperhan
2017-02-14 10:02:01 +08:00
免费代理基本没有用
youyoumarco
2017-02-14 10:28:39 +08:00
学习爬虫中。感谢分享
ijustdo
2017-02-14 10:47:29 +08:00
免费代理不做验证 基本好多都没法用的 小伙子加上代理验证吧

这玩意 2007 年就做过 当时分布式抓取 分布式验证 服务端在 linux 客户端在 win 自动清理无效代理
当时是给分布式爬虫用的
awolfly9
2017-02-14 11:04:29 +08:00
@ijustdo 是有代理验证的。抓取,验证,然后提供接口。
hadoop
2017-02-14 11:09:25 +08:00
@dongxiaozhuo 这个数量 nb !
jiezhi
2017-02-14 11:13:03 +08:00
感谢分享, star 为敬
mclxly
2017-02-14 11:14:40 +08:00
都 2017 了,为何不用 Python 3 写呢
onestar
2017-02-14 11:49:20 +08:00
学习了,已 star
awolfly9
2017-02-14 12:31:36 +08:00
@mclxly 以后开一个分支出来用 python3

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/340272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX