首页
社区
课程
招聘
[原创]强扩展性IP代理 python开源
2015-5-16 18:32 7565

[原创]强扩展性IP代理 python开源

2015-5-16 18:32
7565
poxy是用python3.4写的.用于抓取代理IP.
它有比较强的扩展能力.代理获取规则是通过配置文件定制的.

命令行帮助:
-h, --help                                           显示帮助并退出.
-o [OUT], --out [OUT]                   将捕获的代理ip放到指定的文件里.没有指定文件将在stdout屏幕输出.
-f [FORMAT], --format [FORMAT] 捕获的ip,端口的输出格式:默认为"{0}:{1}\n".其中{0}是在pattern中捕获的第一个符合的group.以此类推.
--check                                   检查代理ip的可用性.
--target [TARGET]                           指定用于检查代理的url. 默认检查的网址为:https://github.com
--config [CONFIG]                           代理捕获的行为规则文件 默认: proxy.settings

默认配置文件中,我加了4个代理ip的网站,分别是:
www.youdaili.net,www.haodailiip.com,www.xici.net.co,www.google-proxy.net.
自己可以加入新的代理获取规则.
由于是通过规则获取代理的,所以总是可以获取到最新的代理ip.
使用默认代理获取规则,可以获取1000左右的代理ip.

2.获取代理的行为规则配制文件: 具体看帮助文件.

最新的版本可以在github上下载:https://github.com/yufengzjj/poxy.git

一个简单使用示例:


用于获取支持www.google.com.hk访问的代理IP......大概有100左右可用的代理IP.
要想获取更多,自己写一下配置规则即可.具体看帮助文件.
关于配置规则的说明,先看doc文件夹下面的帮助.
这里给一个简单例子:
假设一个完整的规则配置文件poxy.settings:
//----------------------------------------------------
{
   "xici"://配置名称
  {
      "base_url"://数据网页,不是最简单形式时是递归定义的,也可以直接写成"base_url":["http://www.xici.net.co/nn/"]这样的形式,但是功能会弱很多.
      {
        "base_url":["http://www.xici.net.co"],//基本网址
        "selector": ["ul#nav > li > a"],
        "sequence": [1,2],//在上面的selector的定位和container_attr(优先于pattern,因此这里pattern可省略)的选择下,有多个结果,1和2表示选取结果中的其中两个网址:
                                   // 即(不用管是否是相对网址)http://www.xici.net.co/nn/,http://www.xici.net.co/nt/,
                                   //也就是国内高匿代{过}{滤}理和国内普通代{过}{滤}理.
        "pattern": ["href=\"([^\\s]+)\""],
        "container_attr":["href"]
      },
      "selector":["table#ip_list > tr"],//在上面的选择下,base_url的结果会是"base_url":["http://www.xici.net.co/nn/","http://www.xici.net.co/nt/"]
      "pattern":["([\\d]+\\.[\\d]+\\.[\\d]+\\.[\\d]+)[^\\d]+([\\d]+)"]//再综合selector的定位和pattern对ip地址的捕获,获得需要的代{过}{滤}理IP.
  }
}
//----------------------------------------------------------
工作行为类似于爬虫,即给定一个基础网页,通过一定的规则自己爬取中间网页,最后对最终网页数据进行捕获.
其中爬取规则是递归定义的.

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 2656
活跃值: (3730)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
值得怀疑 2015-5-16 22:44
2
0
示例呢··?
雪    币: 141
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
crbb 2015-5-23 17:49
3
0
没有指定文件将在stdout屏幕输出正常,保存到文件--out myip.txt,可以看以新建了文件,但始终是0字节,楼主看看怎么回事。
雪    币: 41
活跃值: (82)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wuyuhan 2015-5-23 18:01
4
0
lz用的什么ide 看起来不错的样子
雪    币: 1556
活跃值: (798)
能力值: ( LV9,RANK:320 )
在线值:
发帖
回帖
粉丝
红绡枫叶 6 2015-5-23 22:42
5
0
感谢反馈,保存延迟问题已经修复.
雪    币: 1556
活跃值: (798)
能力值: ( LV9,RANK:320 )
在线值:
发帖
回帖
粉丝
红绡枫叶 6 2015-5-23 22:43
6
0
pycharm,和 intellij idea 是同一个公司出的.
雪    币: 10695
活跃值: (2564)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
menglv 2015-5-23 23:17
7
0
留个脚印。
雪    币: 156
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
oopww 2015-8-6 20:38
8
0
请教下楼主,怎么验证代理ip有效。
雪    币: 126
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
三十六计 2015-8-8 11:40
9
0
谢谢楼主
游客
登录 | 注册 方可回帖
返回