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