Lang_URL深度采集工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzy98/article/details/83246254

title: Lang_URL深度采集工具
copyright: true
top: 0
date: 2018-09-02 16:15:12
tags: URL采集
categories: 个人作品
permalink:
password:
keywords:
description: Lang_URL深度采集程序是一款允许自定义网址规则的URL采集程序,在URL采集过程中网址进行动态规则检测,符合条件的网址才会允许记录保存在本地。 比如网址中比如包含【www】,标题中必须出现【国际】,网页中不允许出现【安全狗】此类规则。并且还能通过友链进行无限采集与过滤。

优你扮小丑扮得太久了,演得太入戏,都忘记自己了。

Lang_url 自动化采集0.95 版本

常见URL采集器不足

市面上大部分的URL采集软件的原理都是这样:

  • 找到多个搜索引擎的接口
  • 输入关键词,对每个接口进行最大化的采集网址
  • 去重复
  • 自定义URL过滤黑名单

这也就意味着你需要尽可能多的接口包括但不限于Bing、Google、Sougou、Baidu等等等,然后传参对返回的页面提取网址基于黑名单过滤部分网址,最后迭代页数。

看上去的确没错,输入关键词获取相关的网址。但是在这个表面下却隐藏着几个缺点:

  • 采集的网址都是被搜索引擎收录的,还有许多网址符合需求但是没办法采集到
  • 采集URL每个人都可以用,关键词也差不多。导致最后采集的结果也差不多,这就意味着你好不容易找到一个漏洞站结果发现几千人利用完了…
  • 没有更加细致的过滤,比如你想采集淘宝和阿里的子域名,一般会输入 淘宝|阿里 这样去采集,但是淘宝的网址中是带有taobao的,如果在采集的时候能自动加上网址验证就好了
  • 采集数量最终有限,因为数据都是由搜索引擎提供,所以数量绝对是有限的。

解决不足的办法

为了解决优化这个问题造福广大群众,浪师傅花了2个小时完成了伪代码并且成功试运行…然后又前前后后花了8个多小时修改完一些bug…目前完成的是0.95版本,0.95版本提供如下功能:

  • 能对传入的网址进行友链爬行,爬更多没有被收录的网址
  • 能对采集的网址进行自定义规则检测(比如网址中必须要包含www)
  • 能对采集的结果无限自动重复爬行,实现定义好规则后挂机无限采集

基本原理

其实实现起来并不难,难处在于程序中条件判断,一个不下心就蹦出一个BUG了…

无非是先获取过滤规则,然后判断传入方式获取网址,最后对网址进行规则判断即可。

功能介绍

  • 能对原始网址进行友链爬行,获取更多的网址
  • 能对传入的网址进行自定义规则过滤,去除不符合条件的网址
  • 能对结果自动去重复
  • 能自动无限采集
  • 提供两个入口,可以直接导入采集好的网址也可以使用自带的baidu接口
  • 细致的网址过滤规则
  • 能对传入的网址直接进行规则过滤,不采集友链

使用方法

在使用前希望你可以细心阅读完使用方法介绍,目前版本为0.95版本。

当你打开目录后会发现 3 个文件,分别是:

  • 浪子URL采集0.95.exe [主程序]
  • 文本去重.exe [一个简单的文本去重复]
  • Config.exe [重点:配置文件]

来重点看下配置文件怎么写,它涉及到了网址过滤规则和是否进行无限采集,请求超时,线程数量。

自定义规则

打开当前目录下的Config.ini,安装需求进行配置

[User]
whoami = Langzi
[Config]

#条件设置 & 是与关系。| 是或关系。
#设置成 None 即不检测存在与否关系,直接保存到本地
#一个条件中可以存在多个&,也可以存在多个|,但不允许同时存在&和|
#具体用法看下面例子

title = 浪子&博客
#title = 浪子&博客,标题中必须存在【浪子】和【博客】两个词才允许保存到本地
#如果设置成None的话,不检测标题关系
#title = None 的话,不检测标题中存不存在词
#title = 浪子 的话,标题中必须存在【浪子】这个词才允许保存到本地
#title = 浪子|博客,标题中仅需存在【浪子】或【博客】其中一个词就允许保存到本地

black_title = 捡到钱|踩到屎
#标题中出现【捡到钱】或【踩到屎】其中任意一个词就排除这个网址

url = www&cn
#网址中必须存在【www】和【cn】两个词才允许保存到本地

black_url = gov.cn|edu.cn
#网址中出现【gov.cn】或【edu.cn】其中任意一个词就排除这个网址

content = None
#不检测网页存在与否关系
#即不管网页存在什么都保存到本地

black_content = 404|360|安全狗
#网页中出现【404】或【360】或【安全狗】其中任意一个词就排除这个网址

thread = 100
#采集线程
timeout = 5
#连接超时5秒
track = 1
#设置 0 表示对传入的网址不采集友链,直接对传入网址进行动态规则筛选
#设置 1 将会对传入网址进行友链采集,并且对传入网址和网址的友链进行动态规则筛选
forever = 1
# 设置 0 表示不会对采集的结果无限重复采集
# 设置 1 会对采集的结果无限重复采集,实现挂机无限采集符合要求的网址

URL筛选权重排序:

网址黑名单>标题黑名单>网页黑名单>网址白名单>标题白名单>网页白名单

如果其中有一项不符合配置文件的要求,就排除该网址

注意,凡是 & | None 都是英文输入法

如果你怕你输入错误了 直接在这里复制进去吧

&&&&&&

||||||

None None None

注意,track(友链爬行)和forever(无限采集)配置项,如果设置forever=1的话,track也必须设置为1,因为你要开启无限采集的话就必须开启友链爬行功能,不然就没有新的连接传入也就无法实现无限采集功能了。

初次使用

和大部分URL采集器一样,启动后会提示输入关键词,然后采集网址。

当你配置好config.ini过滤规则,线程数,连接超时,是否开启友链爬行,是否开启无限采集后。右键启动 浪子URL采集0.95.exe

配置如下:

[User]
whoami = Langzi

[Config]
url = .edu.cn
black_url = None
title = 学
black_title = 政府
content = None
black_content = 政府
thread = 500
timeout = 5
track = 1
forever = 0

作用:网址中包含【.edu.cn】,标题中包含【学】,标题中不能包含【政府】,网页中不能包含【政府】,500线程,连接超时5秒钟,对结果爬行友链一次,不无限采集

这时候你会看到如下界面

根据提示可知,这个时候需要传入初始网址了,因为事前没有采集网址保存到本地,于是输入 1 ,进行百度关键词采集

这个时候查看日志文件可以看到开始采集了

异常状态,友链爬行,规则过滤都在日志文件中

最后的结果会保存到本地

然后使用 文本去重.exe 去下重复,直接把文本拖进去就行。

采集结束。

初始网址也可以从一个文本文件中载入,还可以输入关键词然后用自带的百度接口采集网址。

比如这个时候你再打开主程序,按照提示输入 0

把网址文本拖进去也可以进行采集的

这个看个人需求,如果你手里有100个网址,你想对这100个网址进行友链爬行,运行主程序输入 0 ,然后把那个文本直接拖进来,回车即可。

如果你手里没有准备好网址也没关系,同样可以使用自带的接口采集关键词。 运行主程序输入 1 ,提示输入关键词然后用百度接口采集。

可以在日志文件中看到爬行日志。

每次的结果自动按照时间保存在本地。

规则技巧

采集教育网址

config.ini这样设置

[User]
whoami = Langzi

[Config]
title = 学校|教育
# 标题中出现【学校】或者【教育】其中一个词就保存本地
black_title = 政府
# 标题出现【政府】就排除这个网址
url = .edu.cn
# 网址中必须出现【.edu.cn】
black_url = None
# 不检测网址黑名单
content = None
# 不检测网页内容
black_content = 政府|上海|北京
# 网页中出现【政府】或者【上海】或者【北京】其中某一个词就排除这个网址
thread = 500
# 线程数量 500
timeout = 5
# 连接超时 5 秒
track = 1
# 对网址进行友链爬行
forever = 1
# 进行无限采集

采集大厂的子域名

[User]
whoami = Langzi

[Config]
title = 百度|京东|淘宝|阿里|腾讯|浪子
# 标题中出现【百度|京东|淘宝|阿里|腾讯|浪子】其中一个词就保存本地
black_title = 黄页|企业信息|天眼查
# 标题出现【黄页|企业信息|天眼查】其中一个就排除这个网址
url = baidu|taobao|tentcent|jd|langzi
# 网址中出现【baidu|taobao|tentcent|jd|langzi】其中一个词就保存本地
black_url = None
# 不检测网址黑名单
content = None
# 不检测网页内容
black_content = None
# 不检测网页黑名单
thread = 500
# 线程数量 500
timeout = 5
# 连接超时 5 秒
track = 1
# 对网址进行友链爬行
forever = 1
# 进行无限采集

采集特定的网址(国外)

[User]
whoami = Langzi

[Config]
title = None
# 不检测标题内容
black_title = 一|科|中|新|信|阿|吧|思|家
# 标题出现【一|科|中|新|信|阿|吧|思|家】其中一个就排除这个网址
url = www&jp
# 网址中必须出现【www】和【jp】这两个词才会保存到本地(日本网址后缀)
black_url = cn
# 网址中出现【cn】就排除这个网址
content = None
# 不检测网页内容
black_content = 网页出现【一|科|中|新|信|阿|吧|思|家】其中一个就排除这个网址
# 网页出现【一|科|中|新|信|阿|吧|思|家】其中一个就排除这个网址
thread = 500
# 线程数量 500
timeout = 5
# 连接超时 5 秒
track = 1
# 对网址进行友链爬行
forever = 1
# 进行无限采集

对本地大量网址进行验证

如果手里有100w个网址,但是不想对这些网址进行友链爬行,因为这样比较浪费时间。仅仅对着100w个网址进行规则过滤,右键启动主程序,按照提示输入 0 ,把那个文本拖拽进去。

配置文件如下:

比如想筛选出大厂的域名

[User]
whoami = Langzi

[Config]
title = 百度|京东|淘宝|阿里|腾讯|浪子
# 标题中出现【百度|京东|淘宝|阿里|腾讯|浪子】其中一个词就保存本地
black_title = 黄页|企业信息|天眼查
# 标题出现【黄页|企业信息|天眼查】其中一个就排除这个网址
url = baidu|taobao|tentcent|jd|langzi
# 网址中出现【baidu|taobao|tentcent|jd|langzi】其中一个词就保存本地
black_url = None
# 不检测网址黑名单
content = None
# 不检测网页内容
black_content = None
# 不检测网页黑名单
thread = 500
# 线程数量 500
timeout = 5
# 连接超时 5 秒
track = 0
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集

重点在这里:

track = 0
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集

这样设置的话,就不会对网址进行友链爬行和无限采集。

具体使用

初始网址导入

当你右键启动主程序的时候,会提示初始网址的传入方式

- 输入:0 ,会让你把网址文本拖拽进来
- 输入:1 ,会让你输入关键词,然后百度采集网址

只想对友链爬行过滤一次

配置文件后面两行这么写

track = 1
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集

然后右键启动,安装提示导入初始网址或者使用百度关键词采集即可。

采集完后右键允许 文本去重.exe 把结果直接拖进去去重复。

只想对友链爬行两次并过滤

(>人<;)不好意思,暂不支持

想无限采集网址

配置文件后面两行这么写

track = 1
# 对网址进行友链爬行
forever = 1
# 进行无限采集

这样就开启了无限采集功能,右键启动主程序,按照提示导入初始网址或者使用百度关键词采集功能,接下来就不用管了。

每次采集的结果都按照时间保存在本地,无限采集功能是把这次的所有结果作为下次的初始网址导入。

自动去重复。

只想对本地大量网址过滤

就如上面提起,配置文件后面两行这么写

track = 0
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集

然后右键启动主程序,按照提示输入 0 ,把网址文本拖拽进来,结果自动保存到本地。

个人使用

其实使用规则很简单的,无非是或与的关系。配置无限采集也很简单,前提只有一条那就是如果要开启无限采集的话就必须要开启友链爬行。

规则种类不多,但是大家可以根据自己的需求进行配置,毕竟自己的需求自己才知道,当然不仅仅只有这么写用法,具体如何深度爬去更多网址要看你的脑洞了。

比如你用b0y的url采集器采集了5000条网址,然后你把这些网址开启友链爬行和深度爬行,就能爬去到更多的网址。

还有更多骚操作就看你能不能想到了。

日志

每次友链爬行,规则过滤异常状态都会保存在本地当前目录下的log.txt当中,可以留意该文件。

注意

  • 【** 注意,forever = 1的前提条件是track = 1,即必须开启自动爬行友链的前提下才能启用无限采集功能 **】

  • 【** 注意,凡是 & | None 都是英文输入法 **】

  • 【** 如果你怕你输入错误了 直接在这里复制进去吧~ **】

      &&&&&&
      
      ||||||
      
      None None None 
    
  • 【** 注意,如果报错出现ConfigParser.MissingSectionHeaderError: File contains no section headers. **】

解决办法:

打开config.ini,然后另存为asicii编码就行了。

效果演示

为了采集教育网址,我的配置文件这么写

[User]
whoami = Langzi

[Config]
title = 学
black_title = 政府
url = .edu.cn
black_url = None
content = None
black_content = 政府
thread = 500
timeout = 5
track = 1
forever = 1

然后右键启动主程序,因为我之前没有采集网址,所以我输入 1 ,提示输入关键词,我输入【教育】,然后开始自动采集程序。然后打游戏去了,过了会儿本地多了三个文本,分别是依次保存的结果。按照时间排序,越后面的文本采集的结果最全面。放在服务器上面挂机一天去重复后采集了4W多个教育网。

Lang_url 自动化采集0.96 版本

  • 修复部分网址编码无法识别问题
  • 取消无限采集功能,改成按次数采集
  • 修复文本去重复

重点在这里:

track = 1
# 设置 0 表示对传入的网址不采集友链,直接对传入网址进行动态规则筛选
# 设置 1 将会对传入网址进行友链采集,并且对传入网址和网址的友链进行动态规则筛选
forever = 1
# 对结果重复继续重复爬行友链次数
# 设置 0 表示不会对采集的结果无限重复采集
# 设置 1 会对采集的在进行友链爬行采集一次
# 设置 2 会对采集的在进行友链爬行采集两次
# 设置 3 会对采集的在进行友链爬行采集三次
# 设置 x 会对采集的在进行友链爬行采集x次
# 设置 forever大于0 的前提条件是track=1

【** 注意,forever 大于0 的前提条件是track = 1,即必须开启自动爬行友链的前提下才能启用无限采集功能 **】
【** 注意,如果不想采集友链不想多次采集,仅对自己的网址文本进行规则过滤的话,设置forever = 0,track =  0**】
【** 注意,如果设置track=0,forever=1或者大于1的话,效果和forever=0,track=0 效果一样,所以请不要这样做**】
【** 注意,如果设置track=1,forever=0的话,效果为要进行友链采集但没有设置采集次数,所以请不要这样做**】

也就是说:track(友链爬行)只有0(关闭) 和 1(开启)这两个选项,forever(爬行次数)有0-1000(0-无穷大的正整数)选项。

如果要对自己手里的网址只进行规则过滤的话,设置forever=0,track=0

2018年9月5日00:12:46

修复一个功能,当设置 所有的过滤规则 = None的时候,随后track=1,forever= 大于0的正整数。即不对网址进行规则过滤,只会提取网页的所有网址然后保存到本地。

这就意味着你可以这么设置

[User]
whoami = Langzi

[Config]
url = None
black_url = None
title = None
black_title = None
content = None
black_content = None
thread = 100
timeout = 5
track = 1
forever = 8

作用:不检测规则,直接提取页面中所有网址。

随后导入网址,进行友链爬行,爬行8次,采集很多的结果。然后把所有的结果汇总,再设置自定义规则进行本地文件过滤也是可以的。使用方法有很多种,具体需求如何就要看你怎么操作了。

Lang_url 自动化采集0.97 版本

2018年9月6日18:13:40

修复一个功能

  • 保存日志出现编码问题

新增一个功能

  • white_or [白名单或与机制]
  1. 设置 white_or = 1 表示所有的白名单(url,title,content中,只要其中一个满足条件就保存到本地,即url = www,title = 国际,content = langzi,只要网址中出现了www就保存到本地)
  2. 设置 white_or = 0 表示所有的白名单(url,title,content中,三个条件都要满足才会保存)

暂时没有黑名单或与机制。

2018年9月7日20:28:33

修复多次采集问题

Lang_url 自动化采集0.98 版本

  • 修复了一个说了你也不会看的bug
  • 重构输出结果文件目录

每次扫描的时候都会在当前目录新建一个文件夹,文件夹内即爬行检测后的网址,并且里面有一个result.txt,这个文本文件就是所有的符合规则的网址。

2018年9月9日22:42:11

  • 修复了一个微妙的bug
  • 当然速度还是很慢

2018年9月10日22:06:22

最新下载地址

解压密码:t00ls.net

Lang_url 自动化采集0.99 版本

一些有意思的小特性

  • 使用SQLite3数据库,节省内存
  • 可以重复使用同一个数据库哦

猜你喜欢

转载自blog.csdn.net/lzy98/article/details/83246254