Java и Jsoup помогите

366
20 декабря 2016, 23:45

Вот мой код

public static void main(String[] args) throws IOException {
    Document doc = Jsoup.connect("https://elitedrop.ru/").userAgent("Mozilla").data("name", "jsoup").get();
    System.out.println(doc);
}

После отправки этого запроса к сайту мне вместо его Html кода возвращает вот это:

<html>
 <head></head>
 <body>
  <script>var xmlhttp = new XMLHttpRequest();function eraseCookieFromAllPaths(name) { var pathBits = location.pathname.split("/");var pathCurrent = " path=";document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT;";for (var i = 0; i < pathBits.length; i++) {pathCurrent += ((pathCurrent.substr(-1) != "/") ? "/" : "") + pathBits[i];document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT;" + pathCurrent + ";";}}eraseCookieFromAllPaths("BHC");xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var a=xmlhttp.responseText;document.cookie="BHC="+a+"; path=/";document.location.href="/?name=jsoup"; } };xmlhttp.open("GET", "/banhammer/pid", true);xmlhttp.send();</script> 
 </body>
</html>

Объясните пожалуйста в чём проблема(с других сайтов код приходит)?

Answer 1

Скорее всего на стороне сайта стоит защита от роботов/DDoS, которая использует тот факт, что в браузере "живого" пользователя будет выполнятся JavaScript.

Answer 2

Сайт, откуда Вы хотите спарсить информацию, вероятнее всего, фильтрует запросы по полю User Agent.

Для работы с этим сайтом с помощью Jsoup необходимо установить валидный User Agent, например:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

Код:

public static void main(String[] args) throws IOException {
    Document doc = Jsoup.connect("https://elitedrop.ru/").userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36").data("name", "jsoup").get();
    System.out.println(doc);
}

успешно выводит на консоль HTML-код заданной страницы.

READ ALSO
Вывод всех значений HashMap

Вывод всех значений HashMap

Добрый деньПрограмма должна выдавать ключ и несколько значений по этому ключу, но значения выводятся в виде кода: [{Person@1b6d3586=[Phone@4554617c, Phone@74a14482]}]...

338
Обработка исключений Java

Обработка исключений Java

Доброго времени сутокРешал учебную задачу

412
Anchor и BottomSheet

Anchor и BottomSheet

Хочу сделать, что бы когда BottomSheet появлялся на экране, что бы поднималась и View вместе с ним, для этого использую CoordinatorLayout и Anchor, проблема в том,...

381
Пустой recycler при переносе в kotlin

Пустой recycler при переносе в kotlin

При попытке перевести мой адаптер java в kotlin возникли следующие заминки:

337