好的,所以我最近两天一直在寻找适合我需要的爬虫。我想建立一个搜索引擎,我想自己做索引。这将是一个学术项目的一部分。虽然我没有爬取整个网络的处理能力,但我想使用一个实际上能够做到这一点的爬虫。所以我正在寻找的是一个爬虫:
- 支持多线程
- 不错过很多链接
- 让我有机会(重写一个方法,以便我可以)访问爬取的页面的内容,以便我可以保存它、解析它等。
- 服从 robots.txt 文件
- 抓取 html 页面(还有 php、jsp 等)。
- 识别具有相同内容的页面并且只返回一个。
它不需要(必须)做的是:
- 支持页面排名。
- 指数结果。
- 抓取图像/音频/视频/pdf等。
我发现了一些非常接近我需要的库/项目,但据我所知,它们并不支持我需要的一切:
- 首先我遇到了crawler4j。这个唯一的问题是它不支持每个主机的礼貌间隔。因此,通过将礼貌级别设置为 1000 毫秒的合适值,会使爬虫变得非常缓慢。
- 我还找到了 flaxcrawler。这确实支持多线程,但在网页中查找和跟踪链接似乎存在问题。
我还研究了更完整和更复杂的“爬虫”,例如 Heritrix 和 Nutch。虽然我不太擅长处理更复杂的东西,但如果我确定它能够完成我需要它做的事情,我肯定愿意使用它:抓取网络并给我所有页面以便我可以阅读他们。
长话短说:我正在寻找一个爬虫,它可以非常快速地浏览网络上的所有页面,并让我有机会对它们做一些事情。