从网站解析JSON时出现SocketTimeoutException

时间:2019-07-01 16:57:12

标签: 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:读取超时。

使用其他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;
}

1 个答案:

答案 0 :(得分:1)

您要连接的页面需要有效的用户代理。您可以使用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();
}