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

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

2015-5-16 18:32
8420
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. 默认检查的网址为:6dcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3@1`.
--config [CONFIG]                           代理捕获的行为规则文件 默认: proxy.settings

默认配置文件中,我加了4个代理ip的网站,分别是:
9baK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4W2G2N6h3c8S2K9h3I4A6i4K6u0W2L8X3g2@1i4K6u0o6N6%4N6%4i4K6u0W2K9r3q4G2k6r3q4A6L8r3W2A6M7q4)9J5k6h3y4G2L8g2)9J5b7%4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5b7%4N6%4N6#2)9J5k6h3N6G2L8$3N6D9k6g2)9J5k6s2m8J5L8%4S2&6i4K6u0W2L8X3g2@1i4K6u0W2
自己可以加入新的代理获取规则.
由于是通过规则获取代理的,所以总是可以获取到最新的代理ip.
使用默认代理获取规则,可以获取1000左右的代理ip.

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

最新的版本可以在github上下载:62bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6&6N6h3k6W2L8X3N6*7K9X3A6Q4x3V1k6H3L8%4S2&6i4K6u0W2k6$3W2@1

一个简单使用示例:


用于获取支持a5cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3N6G2L8$3N6D9k6g2)9J5k6h3y4G2L8g2)9J5k6h3S2C8i4@1f1^5i4@1q4q4i4@1u0r3i4@1f1&6i4K6V1%4i4@1q4q4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1@1i4@1u0n7i4@1p5K6i4@1f1%4i4K6V1H3i4K6R3$3d9g2m8Q4x3X3g2Q4x3X3g2Q4x3X3g2Q4x3X3g2Q4x3X3g2Q4x3X3g2Q4c8e0g2Q4b7e0c8Q4b7e0N6Q4c8e0k6Q4b7e0k6Q4z5o6u0Q4c8e0k6Q4z5f1y4Q4z5o6V1I4x3o6m8Q4c8e0g2Q4b7U0N6Q4b7e0k6Q4c8e0g2Q4z5p5k6Q4b7U0y4Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0c8Q4b7V1u0Q4b7e0y4Q4c8e0N6Q4z5e0m8Q4z5o6k6u0f1q4)9J5k6b7`.`.
要想获取更多,自己写一下配置规则即可.具体看帮助文件.
关于配置规则的说明,先看doc文件夹下面的帮助.
这里给一个简单例子:
假设一个完整的规则配置文件poxy.settings:
//----------------------------------------------------
{
   "xici"://配置名称
  {
      "base_url"://数据网页,不是最简单形式时是递归定义的,也可以直接写成"base_url":["e6bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5c8X3&6F1i4K6u0r3"]这样的形式,但是功能会弱很多.
      {
        "base_url":["e60K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8H3`.`."],//基本网址
        "selector": ["ul#nav > li > a"],
        "sequence": [1,2],//在上面的selector的定位和container_attr(优先于pattern,因此这里pattern可省略)的选择下,有多个结果,1和2表示选取结果中的其中两个网址:
                                   // 即(不用管是否是相对网址)8bdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5c8X3&6F1i4K6u0r3i4K6u0o6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5c8X3&6@1i4K6u0r3i4K6u0o6
                                   //也就是国内高匿代{过}{滤}理和国内普通代{过}{滤}理.
        "pattern": ["href=\"([^\\s]+)\""],
        "container_attr":["href"]
      },
      "selector":["table#ip_list > tr"],//在上面的选择下,base_url的结果会是"base_url":["8b7K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5c8X3&6F1i4K6u0r3","ee8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6j5$3W2Q4x3X3g2F1k6i4c8Q4x3X3g2U0L8#2)9J5c8X3&6@1i4K6u0r3"]
      "pattern":["([\\d]+\\.[\\d]+\\.[\\d]+\\.[\\d]+)[^\\d]+([\\d]+)"]//再综合selector的定位和pattern对ip地址的捕获,获得需要的代{过}{滤}理IP.
  }
}
//----------------------------------------------------------
工作行为类似于爬虫,即给定一个基础网页,通过一定的规则自己爬取中间网页,最后对最终网页数据进行捕获.
其中爬取规则是递归定义的.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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