0

我最近在我工作的公司中一直在使用网络爬虫 Heritrix,经过一段时间的搜索和测试,我找不到如何解决我们的需求。

我们希望每天在 cron 中自动运行 heritrix 以抓取网页列表,我们要做的是检查该网站的任何链接是否指向我们域列表中的网站。困难的部分并且找不到方法是将所有跟踪记录到指向我们域的那个链接。

由于作业的日志文件存储了带有一些信息但不包含跟踪的所有链接。一个示例是在对列表中的域的 grep brazzers 完成作业时运行脚本,因此如果它在爬网日志中找到“brazzers”,它应该在另一个日志中显示结果,其中包含从头到尾的整个跟踪:

2015-10-25T20:18:58.369Z 200 91 http://cdn1.ads.brazzers.com/robots.txt XLEP http://cdn1.ads.brazzers.com/text/plain #021 20151025201857643+726 sha1: CPA63O5POU3CVLCH3VDDIMBJCCWRVLPC - -

有可能这样做吗?或其他方式?对这些东西感觉很愚蠢,我的编程不太好

非常感谢您提前

恩里克。

4

1 回答 1

1

实际上,有一种方法可以在爬网作业完成时分析其最终日志。感谢 heritrix 开发人员 ( https://groups.yahoo.com/neo ) 的响应,我现在有了获取 Web 链接跟踪的规则:

crawl.log 中一行的第四个字段是下载的 URI。该行的第六个字段告诉您引用(直接在)第四个字段中给出的下载 URI 的 URI。所以一般来说,如果你在一行的第四个字段中找到“ourdomain”,那么你在该行的第六个字段中获取 URI,并在 crawl.log 中查找它作为第四个字段,你可以找到它的引用者并按照回到这个模式,直到你找到一个种子 URI。您应该知道何时到达种子 URI,因为第六个字段将有一个“-”而不是一个 URI(第五个字段中给出的发现路径也将是一个“-”)。

通过这种方式,您可以获得此爬网实例从种子到“我们的域”的特定路径,尽管可能存在多个其他路径,爬虫在此实例中没有采用。

有了这个,整理日志文件中的行以构建 Web 链接跟踪的一种方法是创建一个片段,例如在 PHP 中作为示例,遵循给定的规则

于 2015-11-01T15:42:59.913 回答