从网页中提取地址信息

时间:2008-09-03 20:49:27

标签: vb.net screen-scraping street-address

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

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

Aza Raskin谈到了识别所选文本何时是他Firefox Proposal: A Better New Tab Screen中的地址。还没有代码,但我提到它,因为将来可能会有firefox中的代码来执行此操作。

或者,您可以查看使用map command in Ubiquity,但您必须自己选择地址。

答案 2 :(得分:1)

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

  1. 创建System.Net.WebRequest并将响应读入字符串。
  2. 然后创建一个 System.Text.RegularExpressions.Regex 并迭代集合 它与字符串之间的匹配 你刚才检索过每场比赛, 在DataTable中创建一个新行。
  3. 艰难的一点是写正则表达式,这是一种黑色艺术。有关正则表达式的大量工具,书籍等,请参阅regexlib.com

    如果HTML格式的定义不够正确,那么你可能不得不依赖一些用户干预来识别哪些位是地址......

答案 3 :(得分:1)

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

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

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

虽然这并不简单,并且创建一个比简单地剪切和粘贴到经过验证的表单字段中提供巨大优势的界面,我认为这是一个相当大的成就 - 我很想知道你是如何进行的!

编辑:刚刚注意到这个可能涵盖你想要做的事情的另一个问题: Parse usable Street Address, City, State, Zip from a string