是否有专门解析此类数据的库?
答案 0 :(得分:6)
您可以使用Google地图等内容。对地址进行地理编码,如果成功,Google的API将返回地址的XML表示形式,并将所有元素分开(并更正或完成)。
编辑:
我被选中了,不知道为什么。解析地址可能有点困难。以下是使用Google执行此操作的示例:
我不是说这是唯一的方式,也不一定是最好的方法。只需一种方式来解析网站上的地址。
答案 1 :(得分:2)
这有两个部分:从页面中提取完整的地址,并将该地址解析为可以使用的地址(例如,将各个部分存储在数据库中)。
对于第一部分,您需要一个启发式,最有可能依赖于国家/地区:对于美国地址[A-Z][A-Z],?\s*\d\d\d\d\d
,应该为您提供一个地址的结尾,前提是这两个字母是一个州。找到字符串的开头是一个练习。
第二部分可以通过调用Google地图来完成,也可以像在Perl中一样,使用CPAN模块完成:Lingua::EN::AddressParse(在您的数据上测试它以查看它是否适合您)。
在任何情况下,这都是一项艰巨的任务,你很可能永远不会100%正确,所以计划在使用之前手动检查地址。
答案 2 :(得分:0)
你不需要正则表达式(还有)像pyparsing这样的通用解析器(根本)。看看像Beautiful Soup这样的东西,它甚至会将糟糕的HTML解析成类似于标签树的东西。从那里,您可以查看页面的来源,并找出要深入了解哪些标记以获取数据。然后,从Beautiful Soup的树中,您可以使用XPath(在最新版本中)搜索这些节点,并直接遍历您感兴趣的标记,轻松获取实际数据。从那里,您可以使用快速正则表达式或其他东西来解析数据。与纯粹的正则表达式相比,这将更加灵活,更具前瞻性,也可能更少爆发性。