2016-09-11 3 views
1

Я очень новичок в Java.Можно ли получить содержимое сайта Crawler4j?

Теперь я хочу, чтобы извлечь содержимое новостей статьи с помощью Google поиска новостей: ключевое слово: «игрушка» от страницы 1 к странице 10.

https://www.google.com/search?q=toy&biw=1366&bih=645&tbm=nws&source=lnms&sa=X&ved=0ahUKEwiTp82syoXPAhUMkpQKHawZBOoQ_AUICygE

То есть при получении 100 новостного контента со страницы 1 - стр.10 (при условии 10 статьи новостей в каждой странице)

После того как я прочитал это Crawler4j vs. Jsoup for the pages crawling and parsing in Java

Я решил использовать Crawler4j, как это может

Дают базовый URI (домашняя страница)

Возьмите все идентификаторы URI из каждой страницы и получить содержимое этих тоже.

Переместить рекурсивно для каждого URI, который вы извлекаете.

Извлечь содержимое только URI, которые находятся на этом веб-сайте (там может быть внешних URI, ссылающихся на другой сайт, нам это не нужны).

В моем случае, я могу дать на страницу поиска Google от p1 до р10 .И он возвращает 100 новостей статью, если я поставил intnumberOfCrawlers=1


Однако, когда я попробовать быстрый старт в Crawler4j example

Он возвращает только внешние ссылки, найденные по исходной ссылке. Как это:

URL: http://www.ics.uci.edu/~lopes/ 
Text length: 2619 
Html length: 11656 
Number of outgoing links: 38 
URL: http://www.ics.uci.edu/~welling/ 
Text length: 4503 
Html length: 23713 
Number of outgoing links: 24 
URL: http://www.ics.uci.edu/~welling/teaching/courses.html 
Text length: 2222 
Html length: 15138 
Number of outgoing links: 33 
URL: http://www.ics.uci.edu/ 
Text length: 3661 
Html length: 51628 
Number of outgoing links: 86 

Следовательно, интересно может crawler4j выполнять функцию я поднял. Или я должен использовать crawler4j + JSoup вместе?

ответ

3

crawler4j уважение гусеничная вежливость, такая как robots.txt. В вашем случае этот файл следующий one.

Проверка этого файла показывает, что она отвергается сканировать ваши данные пункты семян:

Disallow: /search 

Таким образом, вы не сможете сканировать данный сайт, если вы не измените classes игнорировать robots.txt. Однако это не считается вежливым и несовместим с этикой искателя.

0

Существует много вопросов, на ваш пост я буду стараться изо всех сил, чтобы ответить:

«Является ли он в состоянии получить содержимое сайта с помощью Crawler4j?"

  1. Да, это может, как показано на примере на исходном GitHub код
  2. Однако для для более авансовый DOM синтаксического анализа/манипуляций я призываю вас, чтобы добавить Jsoup. Вот документация Jsoup

«Следовательно, интересно, может ли crawler4j выполнить функцию, которую я поднял. Или я должен использовать crawler4j + JSouptogether? "

  1. Используйте Crawler4j для того, что это здорово, самое большее, ползать
  2. Используйте Jsoup для извлечения и обработки данных с помощью удобного API

" It возвращает только внешние ссылки, найденные из исходной ссылки. Как эти»

  • В BasicCrawler вам необходимо добавить позволяют URLs здесь return href.startsWith("http://www.ics.uci.edu/"); модифицировать, чтобы включить более
  • В BasicCrawlController вам нужно добавить ваши семена страницы здесь config.setMaxDepthOfCrawling(2);
Смежные вопросы