Вопрос по java, jsoup, html-parsing – JSoup.connect выдает ошибку 403, в то время как apache.httpclient может извлечь содержимое

19

Я пытаюсь проанализировать дамп HTML любой страницы. я использовалHTML Parser а также попробовалJSoup для разбора.

Я нашел полезные функции в Jsoup, но я получаю ошибку 403 при вызовеDocument doc = Jsoup.connect(url).get();

Я попытался HTTPClient, чтобы получить дамп html, и он был успешным для того же URL.

Почему JSoup дает 403 для того же URL-адреса, который передает контент от клиента http commons? Я делаю что-то неправильно? Какие-нибудь мысли?

проверьте ссылкуstackoverflow.com/questions/7508813/…, сообщения о похожей проблеме Akash Yadav
@vacuumgoogle.com/… instanceOfObject
Я бы попробовал tcpdump или аналогичный инструмент, чтобы увидеть различия в том, какие данные отправляются HTTP-клиентом, а какие - JSoup. Rostislav Matl
Пожалуйста, shre ссылка. Вы подключены к. vacuum
@AkashYadav Спасибо! User Agent вещь имеет смысл и работает! instanceOfObject

Ваш Ответ

1   ответ
47

за напоминание о том, чтобы поставить его в качестве решения):

Document doc = Jsoup.connect(url).userAgent("Mozilla").get();
Elements links = doc.getElementsByTag(HTML.Tag.CITE.toString);
for (Element link : links) {
            String linkText = link.text();
            System.out.println(linkText);
}

Так,userAgent делает трюк :)

+1 за это! Работает правильно! Потрясающие!

Похожие вопросы