Получение списка всех церквей в определенном штате с помощью Python
-
19-09-2019 - |
Вопрос
Я довольно хорошо владею 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 для решения многих географических задач.