#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 и перехожу к источнику страницы, я не могу видеть все элементы, но когда я нажимаю проверить элемент, я могу видеть что угодно.