2015-07-29 2 views
0

Я использую JSoup для обхода сайта, но он перенаправляется на новую страницу с помощью javascript. Я уверен, что он не использует перенаправление 302, потому что он прекратит перенаправление, когда я отключу javascript моего браузера. Есть ли способ разрешить JSoup автоматически следовать переадресации javascript? Если нет, какие другие альтернативы разрешают переадресацию javascript?JSoup autofollow javascript redirect

ответ

2

Jsoup - это синтаксический анализатор. Он не включает механизм выполнения javascript, поэтому он не может выполнить javascript. Для выполнения javascript вам нужно будет использовать headless browser, например selenium webdriver.

Другой альтернативный вариант - проанализировать javascript (как текст), который отвечает за перенаправление и извлекает URL. После этого вы просто делаете то, что обычно делаете, чтобы очистить сайт. Но это «взломать», это не автоматическое, и я не знаю, достаточно ли это для ваших нужд.

+0

Сайт защищен сервисом scrapping, таким как ShieldSquare и DistillNetwork. Будет ли работать webdriver? Javascript на странице был углублен, поэтому получить URL-адрес невозможно. Но я думаю, что эти службы защиты также создают отпечаток пальца. У вас есть опыт в этом? – angelokh

+0

К сожалению нет. Но, я полагаю, даже эти службы зависят от заголовков, отправленных клиентом. Selenium имитирует обычный браузер, поэтому, если вы правильно настроили заголовки (userAgent и т. Д.), Я не верю, что проблема будет. Сервер не сможет определить разницу между браузером без браузера и обычным браузером. Но, как я уже сказал, у меня нет опыта работы с этими службами, так что принимайте то, что я говорю, с солью. Чтобы проверить заголовки, отправленные вашим браузером, проверьте это http://stackoverflow.com/questions/31549799/using-jsoup-to-login-to-coned-website/31570494#31570494 – alkis