我有一个程序,它使用Java HttpConnection连接到Url。输入流由jsoup解析。我的问题是每个Url大约需要1秒钟。该网页有大约12000行代码,但我只需要一个特定区域(div中大约500行),所以我想知道我是否可以预处理输入流并将这部分代码交给jsoup进行解析。由于我有大约100.000页要爬网,我无法在一天内使用一台服务器处理它。我希望一种预处理可以降低解析时间。像50-150毫秒。我已经检查过jsoup解析是瓶颈而不是互联网连接/下载。
我很感激任何提示。
答案 0 :(得分:0)
是的,当然,您的解决方案已走上正轨。
但问题是 - InputStream
中的代码块从哪里开始?
这仅取决于HTML文档代码。
如果它非常具体,你可以从流中读取并丢弃那些不匹配的字节作为块的开头。
您可以阅读所有输入流并使用indexOf
或某些RegExp
模式(正则表达式要慢得多)。
然后添加<html><body>
并将</body></html>
添加到已解压缩的String
,并在此处为JSoup
解析
答案 1 :(得分:0)