提高刮板效率

时间:2018-12-11 07:58:01

标签: java elasticsearch web-scraping web-crawler

我正在创建一个Java应用程序以从特定的XXX网站抓取数据,并且要将一组所需的数据存储到我的MSSQL数据库中。该数据集在MSSQL中大约有100000多行。

我要做的是刮取数据,根据需要进行处理,然后将其存储在数据库以及ElasticSearch集中。整个过程大约需要2天或更长时间才能运行一次。我使用JSoup解析数据。

我想知道的是,我如何才能提高应用程序的效率,以便可以在更短的时间内抓取并保存它。我有执行程序服务,用于并行执行我的流程。

1 个答案:

答案 0 :(得分:2)

您可以依靠StormCrawler之类的分布式Web爬虫技术来代替手工制作这样的应用程序。它甚至能够将页面索引到ElasticSearch实例中。

如果要存储其他信息,则可以为过程的MSSQL部分轻松实现自定义Bolt。但是,使用此框架需要设置Apache Storm集群环境,这可能需要一些时间和计算资源。这将大大加快您上面描述的过程。