Глядя, чтобы очистить сайт - PullRequest
3 голосов
/ 29 августа 2009

Я хочу почистить веб-сайт, такой как yelp.com, чтобы получить список всех баров, которые у них есть. Существуют ли какие-либо инструменты или сценарии, которые помогли бы мне сделать это.

Ответы [ 5 ]

8 голосов
/ 29 августа 2009

С точки зрения Python

  • HTTPLib2 для автоматизации загрузки страниц.
  • Beautiful Soup для анализа исходного кода HTML для получения необходимой информации.

Прочитайте Введение в сострадательную чистку экрана для хорошего учебника, который поможет вам начать работу с обоими инструментами.

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

Если вы знаете Python, есть модуль pyQuery , который я считаю удобным. Как и jQuery, он позволяет использовать расширенные селекторы CSS для выбора объектов DOM, я считаю, что это гораздо проще, чем с помощью парсера.

1 голос
/ 31 августа 2009

Я проделал такую ​​работу на Superpages и citySearch, используя screen-scraper . Оттуда вы можете записать свои результаты в CSV, базу данных или что-то еще.

0 голосов
/ 29 августа 2009

В эпоху доткомов я написал скребок, чтобы высосать информацию с нескольких сайтов электронной коммерции. Я использовал Perl и для каждого сайта было два уровня кода. Уровень «обнаруживает» будет анализировать и находить списки элементов, а уровень «обрабатывать» будет считывать страницы продукта и отдельные поля данных и передавать их в базу данных.

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

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

Поместите их в список, хэш, что угодно, а затем делайте с ним что хотите.

0 голосов
/ 29 августа 2009

HTTrack - его кроссплатформенность, использовавшая его годами

...