从网页中提取地址信息

时间:2020-03-05 18:47:17  来源:igfitidea点击:

我需要访问一个网页,然后从该页面中提取地址信息。有些比其他容易。我正在寻找可以帮助我完成此工作的firefox插件,Windows应用程序或者VB.NET代码。

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

解决方案

回答

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

有几个FireFox插件Operator&Tails允许我们从网页中提取和查看微格式。

回答

阿扎·拉斯金(Aza Raskin)在他的Firefox提案:"更好的新标签页"中讨论了识别所选文本何时是地址的问题。尚无代码,但我提到了它,因为将来Firefox中可能会有代码来执行此操作。

另外,我们也可以在Ubiquity中使用map命令,尽管我们必须自己选择地址。

回答

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

  • 创建一个System.Net.WebRequest并将响应读入字符串。
  • 然后创建一个System.Text.RegularExpressions.Regex并遍历该匹配和我们刚检索的字符串之间的Matchs集合。对于每个匹配项,在DataTable中创建一个新行。

艰难的一点是编写正则表达式,这有点荒唐。请参阅regexlib.com,以获取有关正则表达式的大量工具,书籍等。

如果HTML格式对正则表达式的定义不够充分,那么我们可能将不得不依靠一定数量的用户干预才能识别出哪些位是地址...

回答

对于VB.NET中的常规HTML屏幕抓取,请查看HTML Agility Pack。比尝试进行正则表达式要容易得多(除非我们正好是正则表达式忍者!)

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

但是要允许用户指向任何页面,这是一项艰巨的工作。数据可以是任何格式。我们可以写一些东西来转储所有文本,猜测它们的分割方式,尝试识别诸如国家和州名,电话号码等位,然后通过一个界面显示结果,该界面将允许用户填写缺少的部分,移动显示的部分。分频器,并确定我们错过或者不想要的位。

不过,这并不简单,与仅仅将其粘贴和粘贴到经过验证的表单字段中相比,提供一个可以提供更大优势的界面将是一个很大的成就,我想我很想知道做法!

编辑:刚注意到这个其他问题,可能涉及我们要执行的操作:
从字符串中解析可用的街道地址,城市,州,邮政编码