使用Python获取某个州的所有教堂的列表

时间:2009-12-14 22:29:45

标签: python automation web-crawler pseudocode street-address

我对Python非常好,所以当细节微不足道时,伪代码就足够了。请让我开始这项任务 - 如何在网上抓取我所在州的教堂的蜗牛邮件地址。一旦我有一个单行班轮,如“123 Old West Road#3 Old Lyme City MD 01234”,我可以将其解析为城市,州,街道,数字,以及足够的反复试验。我的问题是 - 如果我在线使用白页,那么我该如何处理所有HTML垃圾,HTML表格,广告等?我不认为我需要他们的电话号码,但它不会受到伤害 - 我可以在解析后将其丢弃。即使您的解决方案是半手动的(例如保存为pdf,然后打开杂技演员,另存为文本) - 我可能会对它感到满意。谢谢!哎呀,我甚至会接受Perl片段 - 我可以自己翻译它们。

5 个答案:

答案 0 :(得分:2)

尝试lynx --dump <url>下载网页。所有麻烦的HTML标签都将从输出中删除,页面中的所有链接将一起显示。

答案 1 :(得分:2)

您可以使用mechanize。它是一个模拟浏览器的python库,因此您可以浏览白页(类似于您手动执行的操作)。

为了处理'html junk'python也有一个库:BeautifulSoup 这是一种从HTML中获取所需数据的可爱方式(当然,它假设您对HTML有一点了解,因为您仍然需要导航解析树)。

更新:关于如何点击多个网页的后续问题。 mechanize是一个可以做到这一点的图书馆。仔细看看他们的例子,尤其是follow_link方法。正如我所说,它模拟了一个浏览器,因此可以在python中快速实现“点击”。

答案 2 :(得分:2)

您尝试做的事情称为 Scraping 或网页抓取。

如果您在searches上执行了python and scraping,则可能会找到一个有用的tools列表。

(我从未使用过scrapy,但它的网站看起来很有前途:)

答案 3 :(得分:2)

美丽的汤是没脑子的。这是您可以从http://www.churchangel.com/开始的网站。他们有一个巨大的列表,格式非常规则 - 翻译:易于设置BSoup刮。

答案 4 :(得分:1)

如果您只是在寻找地理区域内教堂的地址,那么Python脚本可能不是这项工作的最佳工具。

美国人口普查提供了一套用于地理信息系统的教堂数据集。如果在空间区域中找到所有x是一个反复出现的问题,那么请投资学习GIS。然后,您可以将Python技能用于许多地理任务。