繁体   English   中英

从网站获取某些数据的最快方法? 当前将整个html解析为一个String并进行筛选

[英]Fastest way to grab certain data from a website? Currently parsing whole html into a String and sifting through

我想以最快的方式从网站(没有API或网络服务)中获取数据。 我目前正在使用bufferedreader,并将html解析为字符串,然后使用子字符串在其中筛选所需的数据。

我已经在stackoverflow上搜索了答案,很多人说他们使用JSoup来完成相同的工作,但这是比将数据解析为字符串最快/更快的方法吗?

另外,我只想一遍又一遍地获取相同的数据,而将html解析为String的速度如此之慢是因为该网站包含约2000行。 无论如何,我可以通过操纵URL来隔离我想要的网站部分,从而将我想要的数据变成一个较小的String?

在网站的源代码中,我需要的数据包含一个<span>标签,而我不需要的大多数数据都具有<div><a>标签,并且我确切知道它在源代码中的位置。

目前正在考虑的解决方案:

  • 多线程,因为我将浏览许多相似的页面
  • 自己的带有缓冲线的读取器,带有skipline方法,该方法不保存字符串,而是跳过它(不确定是否可以这样做?)
  • 缓冲的读取器,读取行的第一个字符串,如果不包含我想要的标记,则跳过该字符串

我想使用多线程可以帮助提高速度(虽然不确定,但从未做到),但是我对我的bufferedreader解决方案不太确定。 有什么想法吗?

如果有此解决方案的替代方案,请告诉我。 我一直在努力研究这个问题,只是想不通。 谢谢

人们说他们使用JSoup来完成相同的工作,但是,这是比将数据解析为字符串最快的方法吗?

Jsoup提供了“使用DOM,CSS和类似jquery的最佳方法来提取和处理数据的便捷API” Jsoup官方网站

鉴于您没有在问题中提供足够的信息(例如,您正在解析的网站,您的当前代码等),我只能建议您同时进行两种实现为时间和内存效率进行测试比较 仍然可以向其中添加多线程。

通常,我建议在库完全满足您的需求时使用它们 ,而不要自己构建此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM