爬行程序4j 异步将结果保存到文件



我正在评估爬行器4j每天~1M爬行我的场景是这样的:我正在获取 URL 并解析其描述、关键字和标题,现在我想将每个 URL 及其单词保存到一个文件中

我已经了解了如何将已爬网数据保存到文件中。但是,由于我要执行许多爬网,因此我希望不同的线程在文件系统上执行保存文件操作(为了不阻塞提取器线程(。这可能与爬虫4j有关吗?如果是这样,如何?

谢谢

考虑使用Queue(BlockingQueue或类似(,在其中放置要写入的数据,然后由一个或多个工作线程处理(这种方法不是特定于爬虫4j的(。搜索"生产者消费者"以获得一些一般想法。

关于

您关于如何将Queue传递给爬虫实例的后续问题,这应该可以解决问题(这只是从查看源代码来看,我没有自己使用 crawler4j(:

final BlockingQueue<Data> queue = …
// use a factory, instead of supplying the crawler type to pass the queue
controller.start(new WebCrawlerFactory<MyCrawler>() {
    @Override
    public MyCrawler newInstance() throws Exception {
        return new MyCrawler(queue);
    }
}, numberOfCrawlers);

相关内容

  • 没有找到相关文章

最新更新