-3

我很擅长 Python,所以当细节很琐碎时,伪代码就足够了。请让我开始这项任务 - 如何在网上搜寻我所在州教堂的蜗牛邮件地址。一旦我有了一个像“123 Old West Road #3 Old Lyme City MD 01234”这样的班轮,我可能会通过足够的反复试验将其解析为城市、州、街道、数字。我的问题是——如果我在线使用白页,那么我该如何处理所有的 HTML 垃圾、HTML 表格、广告等?我不认为我需要他们的电话号码,但这不会有什么坏处——一旦解析,我总是可以把它扔掉。即使您的解决方案是半手动的(例如保存为 pdf,然后打开 acrobat,另存为文本) - 我可能仍然对它感到满意。谢谢!哎呀,我什至会接受 Perl 片段——我可以自己翻译它们。

4

5 回答 5

2

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

于 2009-12-14T22:36:49.127 回答
2

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

为了处理“html junk”,python 也有一个库:BeautifulSoup 这是一种从 HTML 中获取所需数据的好方法(当然它假设你对 HTML 有一点了解,因为你仍然会必须导航解析树)。

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

于 2009-12-14T22:42:54.373 回答
2

您正在尝试做的事情称为抓取或网络抓取。

如果您在python 和 scraping上进行一些搜索,您可能会找到一个有用的工具列表。

(我从来没有用过scrapy,但它的网站看起来很有希望:)

于 2009-12-14T22:46:32.063 回答
2

美丽的汤是不费吹灰之力的。这是一个您可以从http://www.churchangel.com/开始的网站。他们有一个庞大的列表,并且格式非常规则——翻译:易于设置 BSoup 来抓取。

于 2009-12-14T23:17:01.530 回答
1

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

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

于 2009-12-14T23:34:17.717 回答