2015-01-26 1 views
1

Я использую Scrapy, и мне нужно очистить адрес от страницы контакта с данным доменом. Домены предоставляются в результате поиска google go api, и, следовательно, я не знаю, какова будет точная структура веб-страницы. Возможно ли такое соскабливание? Любые примеры были бы хороши.Как очистить адрес от веб-сайтов с помощью Scrapy?

ответ

2

Предоставление несколько примеров поможет сделать лучший ответ, но общая идея может быть:

  • найти «Контакты» ссылка
  • пройти по ссылке и извлечь адрес

Предполагая, что у вас нет информации о веб-сайтах, которые вам будут предоставлены.

Давайте сосредоточимся на первой проблеме.

Основная проблема заключается в том, что веб-сайты структурированы по-разному и, строго говоря, вы не можете построить 100% -ный надежный способ найти страницу «Свяжитесь с нами». Но, вы можете «покрыть» наиболее распространенные случаи:

  • следовать a тег с текстом «Обратная связь», «Контакт», «О нас», «О» и т.д.
  • проверки /about, /contact_us и аналогичные конечные точки, примеры:
  • следуют все ссылки, которые имеют contact, about и т.д. текст внутри

Из них можно построить набор Rules для CrawlSpider.

Вторая проблема не проще - вы не знаете, где на странице находится адрес (и может быть, он не существует на странице), и вы не знаете формат адреса. Возможно, вам придется погрузиться в Natural Language Processing и Machine Learning.

+0

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

+0

@DharmanshuKamra возможно, но может быть нелегко написать выражение, которое будет поддерживать все возможные форматы адресов. Трудно сказать больше. Надеюсь, это поможет. – alecxe