ACHE:一款功能强大的聚焦型网络爬虫

工具介绍

今天给大家介绍的是一款名叫ACHE的聚焦型网络爬虫工具,你可以给它指定一个需要搜索的主题或属性内容,它便会给你返回相关的搜索页面。

在配置ACHE时,你需要定义一个你感兴趣的话题(例如渗透测试或菜谱),接下来ACHE便会创建一个模型来检测符合该主题的Web页面,并使用识别种子来作为爬取起始点。从起始点开始,ACHE将会对Web页面进行爬取,并尽可能地检索出所有与该主题有关的页面,与此同时,它还会避免重复爬取相同的Web区域。爬取完成之后,你便能够得到一系列与你所设置的主题有关的Web页面了。

下载、安装与编译

使用下列命令将ACHE源码克隆到本地:

接下来,使用compile_crawler.sh对ACHE源码进行编译:

为ACHE的页面分类器创建模型

为了针对某一主题进行Web页面的爬取,ACHE需要访问其内容模型。接下来,分类器需要利用这个模型来决定需要爬取的新页面,并判断该页面是否符合用户所设置的主题。我们假设你在一个A字典和一个B字典中分别保存A样本和B样本,而这些字典需要存储在训练数据字典中。下面给出的代码可以帮助你通过这些样本来构建爬取模型:

:该路径所指向的是包含A样本和B样本的字典路径。

:该路径指向的是你新生成的字典(模型),该模型由以下两份文件组成: pageclassifier.model和pageclassifier.features。

运行ACHE

当模型生成之后,你需要准备好种子文件,其中的每一行都是一个URL地址。你可以使用下列命令开启爬虫:

:该路径指向配置字典。

:即种子文件路径。

:该路径指向模型字典,其中包含pageclassifier.model和pageclassifier.features。

:该路径指向数据输出字典。

:该路径指向语言检测配置:“libs/langdetect-03-03-2014.jar”。

ACHE运行样例:

数据输出字典中保存了什么?

data_target:包含主题相关的页面。

data_negative:包含主题不相关的页面。在默认配置下,爬虫并不会保存主题不相关的页面。

data_monitor:包含爬虫的当前状态。

data_url和data_backlinks:永久保存前端爬取信息以及爬取路径图。

何时终止爬虫运行?

除非你手动终止ACHE的运行,否则它将会在爬取到最大页面数之后终止运行,默认配置下最大为9M,具体可以参考文件data_monitor/harvestinfo.csv来了解当前已下载了多少页面。其中,前三列数据分别为相关页面数、已访问页面数和时间戳。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jack-Cui

Caffe学习笔记(二):使用Python生成caffe所需的lmdb文件和txt列表清单文件

Python版本:Python2.7 运行平台:Ubuntu14.04 最后修改时间:2017.4.20     在上个笔记中,已经学会了如何使用Ca...

4888
来自专栏瓜大三哥

综合后的资源分析——资源与扇出分析

Get_timing_path Report_timing 第一条语句:起点 第二条语句:终点 第三条路径:设置为时序路径的起点和终点 时序分析步骤: N...

2135
来自专栏张戈的专栏

让知更鸟主题的分类图标支持二级分类

今天,突然想启用知更鸟主题的分类图标功能,之前是怕影响速度,现在开了静态缓存,安心了一点。 参照鸟哥的方法在主题选项里面开启后,发现图片的超链接打不开!检查后发...

38012
来自专栏Deep learning进阶路

caffe随记(四) --- mnist示例超详细讲解

这个mnist手写体数字识别的例子可以说是caffe中的 Hello World。mnist最初用于支票上的手写数字识别,针对mnist识别的专门模型是Lene...

2530
来自专栏分子生物和分子模拟计算

构象搜索案例(Hyperchem)

4034
来自专栏胡恒威的专栏

如何在 Linux 系统通过命令行生成随机文件

是否会有这样的场景:在有需要测试数据的时候,你不知如何生成一些已包含测试数据的文件,或者你是临时需要一个小的程序,可以让你生成不同大小的文件(比如大于1Mb少于...

4.1K0
来自专栏cloudskyme

JRuby——Java和Ruby的强强联合

什么是JRuby JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。很多Java编写的...

4024
来自专栏木子昭的博客

Python3读写base64格式base64使用场景

? base64转换过程 这几天写web,需要将用户上传的图片,实时显示到前端页面,然后通过Jcrop裁剪,并将裁剪后的图片通过canvas...

3538
来自专栏编程

合格前端之打造一个属于自己的 UI 库

摘要: 轮子总得造上一造~ 一、项目介绍 vui : 一个私人的vue ui 组件库(移动端为主) 文档官网:https://brickies.github.i...

3058
来自专栏算法channel

TensorFlow笔记|Get Started

本系列推送主要参考: Stanford University CS20SI: Tensorflow for Deep Learning Research. Te...

3618

扫码关注云+社区