Веб-скрейпинг только определенного домена

Я пытаюсь создать веб-скраппер, который, например, собирает новостные статьи с Reuters.com. Я хочу получить название и дату. Я знаю, что в конечном итоге мне нужно будет просто извлечь исходный код из каждого адреса, а затем проанализировать HTML, используя что-то вроде JSoup.

У меня вопрос: как я могу убедиться, что делаю это для каждой новостной статьи на Reuters.com? Как я узнаю, что нашел все адреса reuters.com? Есть ли API, которые могут помочь мне в этом?


person Richie Episcopo    schedule 08.09.2013    source источник
comment
Короткий ответ заключается в том, что вы продолжаете парсить до тех пор, пока количество новых открытий URL-адресов, которые вы делаете (по сравнению с количеством старых), не стремится к нулю. Вы никак не сможете определить, сколько статей размещает reuters.com, если они не используют простой индексированный код статьи в своих URL-адресах. К сожалению, многие газетные сайты используют сложную схему URI и редко бывают лаконичными или элегантными.   -  person halfer    schedule 20.09.2013


Ответы (2)


То, о чем вы говорите, называется веб-скрапинг плюс веб-сканирование. Что вам нужно сделать, так это посетить каждую ссылку, соответствующую определенным критериям (сканирование), а затем очистить содержимое (сканирование). Я никогда ими не пользовался, но вот две Java-фреймворка для работы.

  1. http://wiki.apache.org/nutch/NutchTutorial
  2. https://code.google.com/p/crawler4j/

Конечно, вам придется использовать jsoup (или аналогичный) для анализа содержимого после того, как вы собрали URL-адреса.

Обновление Проверьте это Отправка файлов cookie в запросе с помощью crawler4j? для лучшего списка поисковых роботов. Nutch довольно хорош, но очень сложен, если вам нужно только просканировать один сайт. Crawler4j очень прост, но я не знаю, поддерживает ли он файлы cookie (и если это имеет значение для вас, это нарушит договоренность).

person Alkis Kalogeris    schedule 08.09.2013
comment
Отлично, спасибо. Есть ли у вас опыт использования любой из этих платформ (я предполагаю, что буду использовать только одну или другую, верно?)? - person Richie Episcopo; 09.09.2013
comment
Как я упоминаю в посте, к сожалению, я этого не делаю. Я буду использовать один в проекте, который у меня есть (скраппер), чтобы добавить сканирование, но это будет через некоторое время, поэтому я их не проверял. Да, вы будете использовать один из них. Я считаю, что второй, самый простой. Пожалуйста, не забудьте принять ответ, если он отвечает на ваш вопрос. - person Alkis Kalogeris; 09.09.2013

Попробуйте этот сайт http://scrape4me.com/

Мне удалось сгенерировать этот URL для заголовка: http://scrape4me.com/api?url=http%3A%2F%2Fwww.reuters.com%2F&head=head&elm=&item[][DIV.topStory]=0&ch=ch

person Youss    schedule 13.09.2013