Ползать в интернете - PullRequest
       71

Ползать в интернете

12 голосов
/ 08 апреля 2009

Я хочу ползти по конкретным вещам. В частности, события, которые происходят, такие как концерты, фильмы, открытия галереи искусств и т. Д. И т. Д. Все, на что можно потратить время.

Как реализовать сканер?

Я слышал о Grub (grub.org -> Wikia) и Heritix (http://crawler.archive.org/)

)

Есть ли другие?

Какие мнения у всех?

1012 * Джейсон *

Ответы [ 10 ]

10 голосов
/ 15 мая 2009

Отличный вводный текст по этой теме: Введение в поиск информации (полный текст доступен онлайн). В нем есть глава, посвященная веб-сканированию , но, что еще важнее, она служит основой для действий, которые вы хотите выполнять с просканированными документами.

Introduction to Information Retrieval
(источник: stanford.edu )

8 голосов
/ 08 апреля 2009

Есть хорошая книга на эту тему, которую я могу порекомендовать, под названием Веб-боты, пауки и скребки экрана: руководство по разработке интернет-агентов на PHP / CURL .

5 голосов
/ 08 апреля 2009

Что бы вы ни делали, будьте хорошим гражданином и подчиняйтесь файлу robots.txt . Возможно, вы захотите проверить ссылки на странице википедии на ориентированные сканеры . Только что понял, что я знаю одного из авторов Тематических веб-сканеров: оценка адаптивных алгоритмов . Маленький мир.

4 голосов
/ 10 июня 2009

Выезд Scrapy . Это фреймворк для веб-сканирования с открытым исходным кодом, написанный на Python (я слышал, что он похож на Django, за исключением того, что вместо того, чтобы обслуживать страницы, он их загружает). Он легко расширяемый, распределенный / параллельный и выглядит очень многообещающе.

Я бы использовал Scrapy, потому что таким образом я мог бы сэкономить свои силы для чего-то более тривиального, например, как извлечь правильные данные из очищенного содержимого и т. Д. И вставить в базу данных.

3 голосов
/ 08 апреля 2009

Я думаю, что часть веб-сканера будет самой легкой частью задачи. Сложнее всего будет решить, какие сайты посетить и как узнать о событиях на сайтах, которые вы хотите посетить. Может быть, вы хотите узнать об использовании Google или Yahoo API для получения необходимых данных. Они уже выполнили работу по сканированию большого количества страниц в Интернете - вы, во всяком случае, можете сосредоточиться на гораздо более сложной проблеме просеивания данных для получения событий, которые вы ищете.

2 голосов
/ 01 августа 2009

На самом деле написание масштабируемого сканера является довольно сложной задачей. Я реализовал один на работе и поддерживал его довольно долго. Существует много проблем, о которых вы не знаете, пока они не напишут и не решат проблемы. В особенности это касается CDN и дружественного сканирования сайтов. Адаптивные алгоритмы очень важны, иначе вы отключите DOS-фильтры. На самом деле вы все равно не узнаете, если ваш обход достаточно большой.

Что нужно подумать:

  • Что кроме способной пропускной способности?
  • Как вы справляетесь с простоями сайта?
  • Что произойдет, если вы заблокированы?
  • Хотите ли вы заниматься скрытным ползанием (спорным и на самом деле довольно трудным для понимания)?

Я на самом деле написал кое-что, что, если я когда-нибудь об этом узнаю, я мог бы выложить в Интернете информацию о конструкции гусеничной машины, поскольку построить правильную конструкцию гораздо сложнее, чем вам скажут люди. Большинство сканеров с открытым исходным кодом работают достаточно хорошо для большинства людей, поэтому, если вы можете, я рекомендую вам использовать один из них. Какой вариант / выбор платформы.

1 голос
/ 08 апреля 2009

Если вы обнаружите, что сканирование интернета превращается в решение задачи, вы можете подумать о создании RSS-агрегатора и подписке на RSS-каналы для популярных сайтов событий, таких как craigslist и upcoming.org.

Каждый из этих сайтов предоставляет локализованные, доступные для поиска события. RSS предоставляет вам (несколько) стандартизированных форматов вместо того, чтобы использовать весь искаженный HTML, который составляет сеть ...

Существуют библиотеки с открытым исходным кодом, такие как ROME (java), которые могут помочь с потреблением RSS-каналов.

0 голосов
/ 15 июня 2009
0 голосов
/ 15 мая 2009

Следуя предложению Кевина о RSS-каналах, вы можете проверить Yahoo pipe . Я еще не пробовал их, но думаю, что они позволяют вам обрабатывать несколько RSS-каналов и создавать веб-страницы или несколько RSS-каналов.

0 голосов
/ 08 апреля 2009

Существуют ли требования к конкретному языку?

Я провел некоторое время, играя с Chilkat Spider Lib для .net, некоторое время назад для личных экспериментов,

В последний раз, когда я проверял там пауки, они лицензированы как Freeware, (Хотя я не знаю, с открытым исходным кодом :()

Кажется, у них есть Python для Lib.

http://www.example -code.com / python / pythonspider.asp #Python http://www.example -code.com / csharp / spider.asp # .Net

...