Получение списка всех церквей в определенном штате с помощью Python

StackOverflow https://stackoverflow.com/questions/1903966

Вопрос

Я довольно хорошо владею Python, поэтому псевдокода будет достаточно, когда детали тривиальны.Пожалуйста, дайте мне начать с задачи - как мне просканировать сеть в поисках обычных почтовых адресов церквей в моем штате.Если у меня есть одна строка, такая как «123 Old West Road # 3 Old Lyme City MD 01234», я, вероятно, смогу разобрать ее на город, штат, улицу, номер, подходящий с достаточным количеством проб и ошибок.Моя проблема в том, что если я использую белые страницы в Интернете, то как мне справиться со всем мусором HTML, таблицами HTML, рекламой и т. д.?Не думаю, что мне нужен их номер телефона, но не помешает - всегда смогу его выкинуть после разбора.Даже если ваше решение наполовину ручное (например, сохранить в PDF, затем открыть Acrobat, сохранить как текст) — я все равно могу быть им доволен.Спасибо!Черт возьми, я даже приму фрагменты Perl — я могу перевести их сам.

Это было полезно?

Решение

Вы могли бы использовать механизировать.Это библиотека Python, которая имитирует браузер, поэтому вы можете сканировать белые страницы (аналогично тому, что вы делаете вручную).

Чтобы справиться с «html-мусором», у Python тоже есть библиотека: КрасиваяСупЭто прекрасный способ получить нужные данные из HTML (конечно, предполагается, что вы немного разбираетесь в HTML, поскольку вам все равно придется перемещаться по дереву синтаксического анализа).

Обновлять:Что касается вашего дополнительного вопроса о том, как просматривать несколько страниц.mechanize — это библиотека, которая делает именно это.Присмотритесь к их примерам, особенно.метод Follow_link.Как я уже сказал, он имитирует браузер, поэтому «щелчок» можно быстро реализовать в Python.

Другие советы

Пытаться lynx --dump <url> для загрузки веб-страниц.Все проблемные HTML-теги будут удалены из вывода, и все ссылки со страницы появятся вместе.

То, что вы пытаетесь сделать, называется Соскабливание или парсинг веб-страниц.

Если вы сделаете некоторые поиски на питон и парсинг, вы можете найти список инструменты это поможет.

(Я никогда не использовал Scrapy, но сайт выглядит многообещающе :)

Красивый суп – это несложно.Вот сайт, с которого вы можете начать http://www.churchangel.com/.У них огромный список и форматирование очень регулярное — перевод:легко настроить BSoup для очистки.

Скрипты Python могут оказаться не лучшим инструментом для этой работы, если вы просто ищете адреса церквей в определенном географическом регионе.

Перепись населения США предоставляет набор данных о церквях для использования в географических информационных системах.Если найти все x в пространственной области — это повторяющаяся проблема, инвестируйте в изучение ГИС.Тогда вы сможете применить свои навыки Python для решения многих географических задач.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top