SocketTimeoutException при разборе JSON с веб-сайта - PullRequest
2 голосов
/ 01 июля 2019

Мне нужна помощь в разборе HTML с помощью Jsoup: 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 Ответ

1 голос
/ 02 июля 2019

Страница, к которой вы пытаетесь подключиться, требует действительного агента пользователя.Вы можете установить его, используя 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();
}
...