java - 从网站解析 JSON 时出现 SocketTimeoutException

标签 java html json jsoup

我需要有关使用 Jsoup 解析 HTML 的帮助: https://www.sierra.com/clearance~1/women~d~5324/specdataor~gender!women/colorfamily~red/priceor~%2410-%2414dotdot99/3/ .

当我试图解析我得到的任何 HTML 时

java.net.SocketTimeoutException: Read timed out.

对于其他 URL,此代码工作正常。

我该如何解决这个问题?

private void Parsedata(){
  try {
        String URL = "https://www.sierra.com/clearance~1/women~d~5324/specdataor~gender!women/colorfamily~red/priceor~%2410-%2414dotdot99/3/";
            System.out.println(getPage(URL));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private static Document getPage(String URL) throws IOException {
  Document page = Jsoup.connect(URL).timeout(0).execute().parse();
  return page;
}

最佳答案

您尝试连接的页面需要有效的用户代理。您可以使用 Connection.userAgent() 来设置它。例如,您可以使用当前的 Chrome 版本:

private static Document getPage(String URL) throws IOException {
    return Jsoup.connect(URL)
            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36")
            .timeout(10_000).execute().parse();
}

关于java - 从网站解析 JSON 时出现 SocketTimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56839546/

相关文章:

java - 对选定的 jaxws 请求使用 httpsproxy,而不是在系统中设置它

java - 以编程方式删除按钮

Java 微基准测试工具与 System.getNanotime()

javascript - 取消静音后无法恢复音量

html - 这个 "Quine"代码如何详细工作?

javascript - D3.js - 有条件地将 nest.key() 函数应用于数组元素

mysql - 配置数据 - JSON 存储在表中与单个字段中

java - 为什么 javac 在系统重新启动时速度最慢?

javascript - 使用 JSON 文件中的数据作为对其他 JSON 文件中数据的引用

javascript - 格式化无序列表,使其不像段落那样缩进