我需要获取一个网页并从该页面中提取地址信息。有些比其他更容易。我正在寻找可以帮助我完成此任务的 Firefox 插件、Windows 应用程序或 VB.NET 代码。

理想情况下,我希望在我们的管理(ASP.NET/VB.NET)上有一个网页,您可以在其中输入 URL,它会废弃该页面并返回一个我可以放入网格中的数据集。

有帮助吗?

解决方案

如果您知道页面的格式(例如,如果它们都像 ashnha.com 页面),那么编写执行此操作的 VB.NET 代码相当容易:

  1. 创建一个 系统.Net.WebRequest 并将响应读入字符串中。
  2. 然后创建一个System.Text.RegularExpressions.Regex并迭代匹配集合与您刚刚检索的字符串之间的收集。对于每场比赛,在数据台上创建一个新行。

困难之处在于编写正则表达式,这有点像魔术。看 regexlib.com 有关正则表达式的大量工具、书籍等。

如果 HTML 格式对于正则表达式来说定义不够明确,那么您可能必须依赖一定量的用户干预来识别哪些位是地址......

其他提示

您指的是哪种类型的地址信息?

有几个 FireFox 插件 操作员 & 尾巴 允许您从网页中提取和查看微格式。

阿扎·拉斯金 (Aza Raskin) 谈到了如何识别选定的文本是他的地址中的地址。 火狐提案:更好的新标签屏幕. 。目前还没有代码,但我提到它,因为将来 Firefox 中可能会有代码来执行此操作。

或者,您可以查看使用 Ubiquity 中的地图命令, ,尽管您必须自己选择地址。

对于 VB.NET 中的一般 HTML 屏幕抓取,请查看 HTML 敏捷包. 。比尝试正则表达式要容易得多(除非您碰巧已经是正则表达式忍者了!)

您在答案中提到的页面很容易自动化,因为地址采用一致的格式。

但要允许用户指向任何页面,这是一项困难得多的工作。数据可以是任何格式。您可以编写一些内容来转储所有文本,猜测它们是如何划分的,尝试并识别国家和州名称、电话号码等位,然后通过一个界面显示您的结果,该界面将让用户完成缺失的部分,移动分隔线,并找出您错过的或他们不想要的部分。

但这并不简单,并且制作一个比简单地剪切并粘贴到经过验证的表单字段中提供更大优势的界面将是一项相当大的成就,我认为 - 我很想知道您的进展如何!

编辑:刚刚注意到另一个问题可能涵盖了您想做的很多事情:从字符串中解析可用的街道地址、城市、州、邮政编码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top