免规则采集器列表算法(优你扮小丑扮得太久了,演得戏,都忘记自己了)
优采云 发布时间: 2021-10-11 06:05免规则采集器列表算法(优你扮小丑扮得太久了,演得戏,都忘记自己了)
标签:网址采集
类别:个人作品
永久链接:
密码:
关键词:
说明:Lang_URL depth 采集程序是一个允许自定义URL规则的URL采集程序。在 URL采集 过程中,该 URL 会进行动态规则检测,只有满足条件的 URL 才会被允许记录保存到本地。例如,如果URL收录[www],则标题中必须出现[International],网页中不允许出现[safe dog]等规则。并且还可以通过好友链进行无限采集和过滤。
你做小丑太久了,你已经忘记了自己。
lang_url自动化采集0.95版本常用URL采集器不足
市面上大部分的 URL 采集 软件都是这样工作的:
这意味着你需要尽可能多的接口,包括但不限于必应、谷歌、搜狗、百度等,然后将参数传递给返回的页面,根据黑名单提取网址并过滤一些网址,最后迭代页数。
看起来是正确的,输入关键词获取相关的URL。但在这个表面之下隐藏着几个缺点:
缺陷的解决方案
为了解决优化问题,造福大众,郎大师花了2个小时完成伪代码并试运行成功……然后又花了8个多小时修复了一些bug……目前完成的是0. 95版本,0.95版本提供以下功能:
基本的
其实实现并不难,难点在于程序中的条件判断,不甘心就会弹出bug……
无非就是先获取过滤规则,然后判断传入方法获取URL,最后对URL进行规则判断。
功能介绍
使用前,希望您能仔细阅读介绍。当前版本为0.95。
打开目录,会发现3个文件,分别是:
下面重点说一下配置文件的写法。涉及到URL过滤规则以及是否无限采集、请求超时、线程数等。
自定义规则
打开当前目录下的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过滤权重顺序:
网址黑名单>标题黑名单>网页黑名单>网址白名单>标题白名单>网页白名单
如果其中之一不符合配置文件的要求,则排除 URL
注意所有 & | 都不是英文输入法
如果你害怕你的输入错误,直接复制到这里
&&&&&&
||||||
None None None
注意对于track(好友链爬取)和forever(无限采集)配置项,如果设置forever=1,track也必须设置为1,因为如果要启用无限制采集,必须开启好友链爬取功能,否则不会有新连接传入,也无法实现无限采集功能。
第一次使用
和大多数网址采集器一样,启动后会提示输入关键词,然后输入采集网址。
配置config.ini过滤规则后,线程数,连接超时,是否开启好友链爬取,是否开启无限制采集。右键启动浪子网址采集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
功能:URL收录[.],标题收录[Learn],标题不能收录[Government],网页不能收录[Government],500个线程,连接超时5秒,结果爬虫链一次,不是无限的采集
这时候你会看到如下界面
[外部链接图像传输失败。源站点可能具有反水蛭链接机制。建议保存图片直接上传(img-3r0czlsY-41)(/upload/TIM screenshot205.png)]
根据提示,此时需要传入初始URL,因为本地没有保存采集 URL,所以输入1继续百度关键词采集
[外部链接图像传输失败。源站点可能具有反水蛭链接机制。建议保存图片直接上传(img-DVR9FzM8-42)(/upload/TIM截图216.png)]
此时查看日志文件,查看启动采集
[外部链接图像传输失败。源站点可能具有反水蛭链接机制。建议保存图片直接上传(img-9eDz7kHb-43)(/upload/TIM截图218.png)]
异常状态、朋友链爬取、规则过滤都在日志文件中
[外部链接图像传输失败。源站可能有反水蛭链接机制。建议保存图片直接上传(img-SR1kBSzU-44)(/upload/TIM screenshot206.png)]
最终结果会保存在本地
[外部链接图像传输失败。源站可能有反水蛭链接机制。建议保存图片直接上传(img-YHK9Km64-45)(/upload/TIM截图259.png)]
然后使用文本 deduplication.exe 去除重复,只需将文本拖入即可。
[外部链接图像传输失败。源站点可能具有反水蛭链接机制。建议保存图片直接上传(img-YDu3d7xP-45)(/upload/TIM截图224.png)]
采集结束。
初始URL也可以从文本文件中加载,也可以输入关键词然后使用内置的百度界面采集 URL。
比如这时候你打开主程序,按照提示输入0
您也可以将 URL 文本拖入 采集
[外部链接图像传输失败。源站点可能具有反水蛭链接机制。建议保存图片直接上传(img-doGRbLlF-46)(/upload/TIM截图214.png)]
这取决于您的个人需求。如果你手上有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
# 进行无限采集
验证大量本地 URL
如果你手上有100w个网址,但又不想爬取这些网址,因为那样会浪费时间。只对100w的URL进行规则过滤,右键启动主程序,根据提示输入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
# 不进行无限采集
有了这个设置,URL 上就不会出现好友链爬取和无限采集。
初始URL导入的具体使用
右键启动主程序时,会提示初始URL的传入方法
- 输入:0 ,会让你把网址文本拖拽进来
- 输入:1 ,会让你输入关键词,然后百度采集网址
我只想抓取和过滤一次朋友链
在配置文件中写入以下两行
track = 1
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集
然后右键启动,安装提示导入初始网址或使用百度关键词采集。
采集 完成后,右击允许文本deduplication.exe,直接拖动结果重复。
我只想抓取朋友链两次并过滤
(>人<;) 抱歉,暂不支持
想要无限采集 URL
在配置文件中写入以下两行
track = 1
# 对网址进行友链爬行
forever = 1
# 进行无限采集
这就开启了无限采集功能,右键启动主程序,按照提示导入初始网址或者使用百度关键词采集功能,那你就没有了担心它。
每次采集的结果都按照时间保存到本地,无限制的采集功能就是把这次的所有结果作为下一次的初始URL导入。
自动重复数据删除。
我只想过滤大量本地网址
如上所述,在配置文件中写入以下两行
track = 0
# 不对网址进行友链爬行
forever = 0
# 不进行无限采集
然后右键启动主程序,根据提示输入0,将URL文本拖进去,结果会自动保存到本地。
个人使用
其实使用规则很简单,无非就是跟或跟的关系。配置无限制采集也很简单。前提只有一个,就是要开启无限采集,必须开启好友链爬取。
规则的种类不多,大家可以根据自己的需要进行配置。毕竟,您知道自己的需求。当然,不仅仅是这样写用法。如何深度爬取更多网站取决于你的大脑。
比如你用b0y的url采集器采集得到5000个网址,然后就可以开启这些网址的好友链爬取和深度爬取,然后就可以爬到更多的网址了。
还有更多的show操作,就看你能不能想到了。
日志
朋友链每次爬取,规则过滤的异常状态都会保存在本地当前目录的log.txt中。你可以关注这个文件。
注意
解决方案:
打开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
然后右键启动主程序,因为之前没有采集 URL,所以输入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-无限正整数)选项。
如果只想按规则过滤自己手上的url,设置forever=0,track=0
2018 年 9 月 5 日 00:12:46
修复一个功能,当设置所有过滤规则=None,则track=1,forever=一个大于0的正整数,即不对URL进行规则过滤,只提取网页的所有URL并保存到本地。
这意味着你可以这样设置
[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
功能:无检测规则,直接提取页面中的所有URL。
然后导入URL,爬取好友链,爬了8次,采集很多结果。然后就可以汇总所有的结果,然后设置自定义的本地文件过滤规则。使用方法有很多种,具体的需求就看你怎么操作了。
lang_url自动化采集0.97版
2018 年 9 月 6 日 18:13:40
修复一个功能
添加新功能
设置white_or = 1表示所有白名单(url、title、content,只要其中一个符合条件就会保存在本地,即url=www,title=international,content=langzi,只要www出现在URL,会保存到本地)设置white_or = 0表示所有白名单(url, title, content, 保存前必须满足三个条件)
暂时没有黑名单和机制。
2018 年 9 月 7 日 20:28:33
修复多个 采集 问题
lang_url自动化采集0.98版
每次扫描时都会在当前目录中创建一个新文件夹。文件夹是爬取检测后的URL,里面有一个result.txt。这个文本文件是所有符合规则的 URL。
2018 年 9 月 9 日 22:42:11
2018 年 9 月 10 日 22:06:22
最新下载地址
提取密码:
lang_url自动化采集0.99版
一些有趣的小功能