3

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

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

4

4 回答 4

1

您指的是什么类型的地址信息?

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

于 2008-09-03T21:08:57.320 回答
1

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

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

于 2008-09-03T21:43:15.383 回答
1

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

  1. 创建一个System.Net.WebRequest并将响应读入字符串。
  2. 然后创建一个 System.Text.RegularExpressions.Regex 并迭代它与您刚刚检索到的字符串之间的匹配集合。对于每个匹配项,在 DataTable 中创建一个新行。

困难的一点是编写正则表达式,这有点玄学。有关正则表达式的大量工具、书籍等,请参见regexlib.com

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

于 2008-09-03T22:28:21.793 回答
1

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

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

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

但这并不简单,我认为制作一个比简单地剪切和粘贴到经过验证的表单字段具有更大优势的界面将是一项相当大的成就——我很想知道你的进展情况!

EDIT: Just noticed this other question that might cover quite a bit of what you want to do: Parse usable Street Address, City, State, Zip from a string

于 2008-10-31T16:08:20.177 回答