Существуют ли строительные блоки для поисковой системы, которая будет очищать другие сайты?

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

Существуют ли какие-либо строительные блоки, например. сканеры с открытым исходным кодом, которые я бы настраивал, а не создавал с нуля, которые я мог бы использовать?

Любые советы по созданию такого продукта? Не только технические, но и любые юридические/конфиденциальные аспекты, которые мне, возможно, придется принять во внимание.

Например. нужно ли мне «указывать», откуда получены результаты, и ставить ссылку на оригинал, если я получаю их из многих мест?

Редактировать: Кстати, я использую GWT с JS для внешнего интерфейса, еще не определился с языком для внутреннего интерфейса. Либо PHP, либо Python. Мысли?


person marcamillion    schedule 18.06.2009    source источник


Ответы (2)


В Python есть несколько блоков, которые вы можете использовать.

  1. BeautifulSoup [http://www.crummy.com/software/BeautifulSoup/] для парсинг HTML. Он также может работать с плохим кодом, а его API очень прост... для меня намного лучше любого DOM-подобного инструмента. Мой друг успешно использовал его для очистки своего старого форума phpbb. У него довольно хорошие документы.
  2. mechanize [http://wwwsearch.sourceforge.net/mechanize/] — это веб-браузер, имитирующий http-клиентская библиотека. Он обрабатывает файлы cookie, заполнение форм и так далее. Также прост в использовании, но помогает, если вы понимаете, как работает http.
  3. http://dev.scrapy.org/ — это относительно новая вещь: целая структура парсинга на основе витой. Я не играл с ним много.

Я использую первые два для своих нужд; например требуется 20 строк кода, чтобы получить инструмент автоматического тестирования для трехэтапного опроса, с имитацией ожидания ввода данных пользователем и так далее.

person liori    schedule 18.06.2009
comment
Итак, я предполагаю, что идея заключается в том, что я буду создавать «скриншот», анализировать HTML-код и извлекать полезную информацию, а затем сбрасывать ее в БД? Это общий процесс? - person marcamillion; 18.06.2009
comment
Для меня это было достаточно общим ... единственное ограничение, которое я вижу, это то, что нет ни javascript, ни флеш-движка для полной имитации веб-браузера. Вы можете добавить js с привязкой к Spidermonkey — мне это никогда не нужно. - person liori; 20.06.2009

Я сделал парсер экрана на Ruby, это заняло около пяти минут. Очевидно, у этого чувака есть до 60 секунд! Я не уверен, что Ruby настолько масштабируем и быстр, как то, что вы ищете, но я никогда не видел более быстрого пути к проверке концепции или прототипу.

Секрет заключается в библиотеке под названием «hpricot, которая была создана именно для этой цели.

Я ничего не знаю о PHP или Python или о том, что доступно для этих систем/языков разработки.

Удачи!

person Chris McCall    schedule 18.06.2009
comment
Итак, я предполагаю, что идея заключается в том, что я буду создавать «скриншот», анализировать HTML-код и извлекать полезную информацию, а затем сбрасывать ее в БД? Это общий процесс? - person marcamillion; 18.06.2009