Я использую Scrapy, и мне нужно очистить адрес от страницы контакта с данным доменом. Домены предоставляются в результате поиска google go api, и, следовательно, я не знаю, какова будет точная структура веб-страницы. Возможно ли такое соскабливание? Любые примеры были бы хороши.Как очистить адрес от веб-сайтов с помощью Scrapy?
1
A
ответ
2
Предоставление несколько примеров поможет сделать лучший ответ, но общая идея может быть:
- найти «Контакты» ссылка
- пройти по ссылке и извлечь адрес
Предполагая, что у вас нет информации о веб-сайтах, которые вам будут предоставлены.
Давайте сосредоточимся на первой проблеме.
Основная проблема заключается в том, что веб-сайты структурированы по-разному и, строго говоря, вы не можете построить 100% -ный надежный способ найти страницу «Свяжитесь с нами». Но, вы можете «покрыть» наиболее распространенные случаи:
- следовать
a
тег с текстом «Обратная связь», «Контакт», «О нас», «О» и т.д. - проверки
/about
,/contact_us
и аналогичные конечные точки, примеры: - следуют все ссылки, которые имеют
contact
,about
и т.д. текст внутри
Из них можно построить набор Rules
для CrawlSpider
.
Вторая проблема не проще - вы не знаете, где на странице находится адрес (и может быть, он не существует на странице), и вы не знаете формат адреса. Возможно, вам придется погрузиться в Natural Language Processing и Machine Learning.
Итак, вы предлагаете сначала отслеживать страницу контакта, а затем искать адрес на этой странице. Считаете ли вы, что регулярное выражение для поиска пинкода было бы хорошей идеей? –
@DharmanshuKamra возможно, но может быть нелегко написать выражение, которое будет поддерживать все возможные форматы адресов. Трудно сказать больше. Надеюсь, это поможет. – alecxe