Как я могу анализировать / очищать / сканировать сайты для получения конкретной информации? - PullRequest
0 голосов
/ 08 апреля 2011

Недавно мне было поручено задание, которое поражает меня. Мой клуб хочет просмотреть сайты и найти людей, которые делают то, что мы есть.

Используемый в настоящее время метод состоит в том, чтобы перейти в Википедию, получить список всех городов (например: Список городов в Алабаме ), перейти на каждый из сайтов (например: meetup, facebook, craigslist и т. Д.). .), затем выполните поиск по каждому ключевому слову в каждом городе для каждого сайта. (например: кунг-фу, боевые искусства и т. д.)

так 460 городов X 5 сайтов X 5 ключевых слов = 11500 различных поисков = однообразие монотонности.

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

ВОПРОС: Могу ли я изменить какого-либо веб-паука (на этом сайте или на любом другом), чтобы он выполнял этот поиск и возвращал только результаты, которые возвращают true для ключевого слова? Мне все равно, если это скрипт bash, python, ruby ​​или любой другой язык.

дайте мне знать, если что-то из этого было неясно, и извините, если это было немного многословно.

1 Ответ

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

Я бы не стал создавать настоящий веб-сканер для чего-то такого простого.Я думаю, что было бы достаточно:

  1. Получить список городов в файле, скажем cities.txt (выполнимо вручную или выяснить что-то)
  2. Рисунокузнайте, какие шаблоны URL используются для поиска по нужным вам сайтам.
  3. Напишите сценарий оболочки, который выполняет все поиски и сохраняет результаты.
  4. Анализ данных на жестком диске (например, рисунок, который XPath s соответствует результатам для каждого из поставщиков контента, и выполнять поиск по ним)

Часть сбора данных должна быть простой с wget:

for city in `cat cities.txt`; do
  for keyword in 'kung-fu' 'martial arts'; do
    wget http://searchsite1.com/?search=${keyword}&city=${city}
    wget http://searchsite2.com/groups/search?q=${keyword}+${city}
  done
done

Остальные части требуют небольшого выяснения самостоятельно.Вот как я это сделаю, YMMV.

...