Jsoup не может получить полный контент с веб-страницы (нет ошибок / исключений, но отсутствует некоторый контент)

#javascript #java #web-scraping #jsoup

#javascript #java #очистка веб-страницы #jsoup

Вопрос:

Я пытаюсь получить контент со следующей страницы с помощью JSOUP:

http://www.exchangeandmart.co.uk/used-cars-for-sale

Но он не извлекает div с id = results , хотя он виден, когда я открываю ту же ссылку из браузера. Пожалуйста, помогите мне

Java-код:

 Connection connection = Jsoup.connect("http://www.exchangeandmart.co.uk/used-cars-for-sale");
Document doc = connection.get();
System.out.println(doc.getElementById("results")); // prints null
  

ПРИМЕЧАНИЕ: При загрузке страницы нет исключений или ошибок. На странице отсутствует только часть контента. Я напечатал весь документ на консоли с помощью System.out.println(doc); , он сильно отличался от страницы, которую я просматриваю в браузере.

Комментарии:

1. doc.toString() выводит что-нибудь? Если нет, то проблема возникает при установлении соединения с сервером и загрузке данных.

2. @SYLARRR Я отредактировал свой ответ, пожалуйста, посмотрите еще раз.

3. Вы случайно используете JSoup с Android? В этом случае может отображаться мобильная веб-страница, на которой нет элементов с идентификаторами results .

Ответ №1:

Document doc = Jsoup.connect("http://www.exchangeandmart.co.uk/used-cars-for-sale").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2").get() ;

Теперь страница должна отображаться так, как доступ к ней осуществляется из Chrome на ПК.

Комментарии:

1. Позвольте мне проверить, я использую его на своем пк, хотя И НЕ на Android. Но давайте надеяться на хорошее.

2. Боже мой, это сработало, и сработало отлично. Большое спасибо, спасибо, спасибо

3. Но я использую его на ПК, тогда почему он не работает без выполнения пользовательских функций

4. Причина проста: когда вы заходите на веб-страницу с помощью Jsoup со своего компьютера, строка useragent по умолчанию — something APPACHECLIENT 1.4 UNKNOWN . И похоже, что веб-сайт http://www.exchangeandmart.co.uk не знает, как обращаться с такого рода пользователями / браузерами.

5. это не сработало. пожалуйста, включите javaspcript. Потому что, когда я перехожу по ссылке с Chrome и перехожу к источнику страницы, я не могу видеть все элементы, но когда я нажимаю проверить элемент, я могу видеть что угодно.