Jsoup ссылки извлечения - PullRequest
0 голосов
/ 21 марта 2012

Привет, ребята. Я пытаюсь извлечь все якорные ссылки из aol, но это не работает.Тот же код работает с Yahoo Bing.Вопрос в том, в чем будет проблема

Document document5 = Jsoup.connect("www.aol.com").get();
Elements links5 = document5.select("a");

for (Element link5 : links5) {
    out.println(link5.attr("href"));
}

Ответы [ 3 ]

1 голос
/ 21 марта 2012

Согласно комментариям к вашему предыдущему вопросу :

даже после того, как я укажу протокол ... не работают только Google и AOL, работает то же самоес Yahoo, Bing и спросить .... мой проект заключается в реализации механизма метапоиска .... я могу извлечь ссылки из Yahoo, Bing и спросить ... но то же самое не работает с Google и AOL ... чтоможет быть причина .. ??

Они заблокировали ваш запрос, потому что вы действуете как робот / пиявка, что может нарушать их условия обслуживания.Их сайты очень часто запрашиваются, и они не хотят излишне тратить свою пропускную способность на роботов / пиявок, которым на самом деле нужна только небольшая часть ответа.

Используйте их общедоступные API веб-службы вместо анализа HTML всего веб-сайта.Для Google это, например, « API пользовательского поиска Google ».Другие поставщики поисковых систем предлагают аналогичные веб-сервисы.Обратите внимание, что эти веб-службы не возвращают раздутый HTML, но сжимают данные JSON или XML, которые намного проще анализировать / извлекать с помощью анализаторов JSON / XML.

0 голосов
/ 25 августа 2015

Ваш пользовательский агент может отсутствовать.Добавить пользовательский агент:

String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36";
Jsoup.connect(link).userAgent(USER_AGENT).get();
0 голосов
/ 21 марта 2012

Вам необходимо указать протокол:

Document document5 = Jsoup.connect("http://www.aol.com/").get();
...