【发布时间】:2012-09-10 20:07:56
【问题描述】:
我正在尝试找出以 url 作为输入参数在 Java 中获取网页内容的最可靠方法?
我尝试过的事情是: 1. JSOUP 2.HTML单元 3. URL 和 URLConnection
1 和 2 的问题是它们有时会抛出 SocketTimeoutException 或行为不可预测,即使可以获取页面的内容(即使 robots.txt 允许)。
使用 3 我无法在不使用毫秒减法的情况下获得 loadTime。这是最大的问题,它会产生不准确的结果。为了获取内容,我需要使用 Streams 并逐行阅读内容。
当前实现使用方法 #2。它具有 LoadTime 和 contentType 的能力。
对于每个网页的内容,我需要 contentType、loadTime 等。
基本上它是用于验证整个网站的链接验证器项目,包括 css 的背景图像以及图像、js、html 等,因此基于 contentType I 过滤和仅解析 HTML 的内容。
附:将超时时间提高超过 9 秒会使链接验证变慢。所以我当前的超时时间是 9 秒。
我需要帮助,因为我想让我的链接验证工具尽可能可靠。
【问题讨论】:
-
您不想要 SocketTimeoutException 但您将超时限制为 9 秒?我认为你需要选择一个或另一个。
-
但问题是,有时在给出起始 URL 本身后会出错。这是令人沮丧的。并显示内部服务器错误。
标签: java jakarta-ee html-parsing web-crawler