【问题标题】:Best crawler to determine built with technologies?确定使用技术构建的最佳爬虫?
【发布时间】:2017-08-20 21:31:05
【问题描述】:

Builtwith.com 和类似服务(收费)提供使用特定技术(如 SalesForce 或 NationBuilder)构建的域列表。有一些我感兴趣的技术,builtwith 不会扫描,可能是因为它们的市场占有率太小。

如果我们知道某个网站使用了某些显示某项技术的网页签名,那么识别尽可能多的这些网站的最佳方法是什么?我们预计会有 1000 个,我们对流量排名前 1000 万的站点感兴趣。 (我们认为最大的网站不会使用这种技术。)

我有一个开源网络爬虫列表 - http://bigdata-madesimple.com/top-50-open-source-web-crawlers-for-data-mining/ - 但我的用例似乎与爬虫的许多常规标准不同,因为我们只想保存具有此签名的域的“命中”。所以我们不需要很快,但我们确实需要检查网站的所有页面直到找到命中,只使用负责任的抓取实践等。什么是最好的?

或者,不是调整爬虫并运行它,有没有一种方法可以让 Google 或其他搜索引擎找到页面特征,而不是用户可见的内容,这是一种更好的方法?

【问题讨论】:

    标签: web-crawler


    【解决方案1】:

    您确实可以调整开源网络爬虫。您发布的链接提到了大量资源,但是一旦您删除了未维护的资源和未分发的资源,您将不会留下很多资源。根据定义,您不知道哪些站点包含您要查找的签名,因此您必须获取前 1000 万个站点的列表并对其进行爬网,这是一项艰巨的操作,但使用诸如Apache Nutch 或StormCrawler(未在您发布的链接中列出)[免责声明我是 Nutch 的提交者和 SC 的作者]

    另一种更便宜、更快捷的方法是处理CommonCrawl datasets。他们每月提供大量网络爬取数据,并为您完成网络爬取工作 - 包括礼貌等......当然,他们的数据集不会有完美的覆盖范围,但这和你得到的一样好如果您要自己运行爬网。这也是检查您的初始假设和检测非常大数据签名的代码的好方法。我通常建议在开始网络大小的爬网之前处理 CC。 CC 网站包含有关库和处理它的代码的详细信息。

    当我为客户处理 CC 时,包括我自己在内的大多数人所做的是使用 MapReduce 实现处理并在 AWS EMR 上运行它。成本当然取决于处理的复杂程度,但硬件预算通常在数百美元。

    希望对你有帮助

    编辑:DZone 此后重新发布了我关于使用 CommonCrawl 的一篇博文。

    【讨论】:

    • CommonCrawl 数据集和示例项目看起来可能是我们需要的。我会等待其他答案,但可能会接受这个答案。感谢您的开源贡献!
    • 除非您可以通过Google hacking 捕获页面,否则请查看为RSS feedsWordpress themes 挖掘Common Crawl 的示例。