我正在做一个项目,希望在用户发出查询时从网站中提取数据。我担心应用程序的性能。有没有一种方法可以加快从用户发出查询到收到从网站上抓取的响应的时间?举个例子,如果我想抓取twitter并检索喜欢的数量,有没有一种方法可以减少从用户发出关于一个帖子的喜欢数量的查询到响应所花费的时间?
我目前对抓取网站的计划如下:
1.用户问题查询一个网站(Twitter)
- Headless(从一个池中预加载)浏览器加载网站
1.执行数据抓取并检索所需数据
1.将此数据打包到对用户的响应中
1.用户检索响应
在过去我已经使用美丽的汤执行刮,但我正在寻找一个替代,可用于生产水平刮。注:我也计划索引的网站,我刮,因为我预计用户检索类似的网站。
1条答案
按热度按时间qpgpyjmq1#
事实上,像您这样的系统的性能可能会受到用户请求数量的影响。这就是为什么我认为这种通过用户请求进行解析的方法不会很快奏效的原因。有几个明显的原因,包括您无法保证源站点可用或已超出请求限制。此外,由于您的用户来自世界不同地区等,可能会出现一些延迟问题。
一般来说,要构建一个内容聚合系统,需要实现4 stages:
1.聚合,它涉及在Web上对数据源进行爬网。在这个阶段,需要高性能的网络爬虫代理来处理大量的数据。
1.预处理阶段,通常包括HTML标记去除、小写、停用词去除、词干和词形还原、关键字提取。
1.处理阶段,在此阶段对聚合数据进行分组(按含义、相关性、来源等)。
1.输出阶段,在此阶段返回处理后的数据。
正如您所看到的,这是关于构建一个高性能的分布式系统,而不是关于选择一个更快的解析器。聚合过程必须通过定期调用Crawler脱机执行。应使用聚合数据处理用户请求。