0

我有一个客户在单独的页面上使用单独的 vCard。这些被粘贴到 wordpress 文本字段中。(这不是维护人员列表的最有效方式,但事后我不会进行编辑。)我的任务是编写一些东西来解析 vCard 中的所有地址并将信息转储到中央数据库中。这将允许所有不同的页面成为充满来自谷歌的 lat 和 lng 坐标的地址,并显示一个带有大量引脚的可爱首页。
此页面将显示站点其余页面中的所有电子名片。

哦,这是网站上的一个 vcard 示例,经过清理,实际上它会被许多可疑的 HTML 代码包围:

<div class="vcard">
<span class="fn org">XYZ Org Name</span><br />
<span class="url">http://www.someurl.com/</span>
<div class="adr"><span class="street-address">1234 Main Ave</span><br />
<span class="locality">Chicago</span><br />
<span class="region">IL</span><br /><span class="postal-code">60647</span></div>
</div>

现在,每个页面都有其中一个,并且爬取整个站点并将它们收集到一个数组中有点超出我的范围。我可以使用 PHP 和 mySQL 将它们转储到数据库中。
欢迎任何和所有建议!
编辑:不确定这有多重要,但我正在从不同的服务器中提取数据。

4

2 回答 2

0

我相信您正在寻找 HTML 解析器。是python的HTML解析模块

您需要从所有 HTML 文件中解析出相关数据,然后对其进行处理。

我没有尝试过任何 php html 解析器来推荐任何东西,但是由于您正在使用网络服务器,我希望它有 perl?看看perl html 解析器

#此代码段将获取组织名称的内容

 sub start {
      my ($self, $tag, $attr, $attrseq, $origtext) = @_;

      if ($tag =~ /^span$/i && $attr->{'class'} =~ /^fn org$/i) {
          # see if we find <span class="fn org"
          push (@org_names, $origtext);
      } 
  }

现在您有了@org_names包含所有组织名称的数组。

于 2009-10-31T02:23:41.167 回答
0

试试 DOMDocument 类的loadHTML 方法。然后你可以使用 DOMDocument 方法来选择你想要的节点、属性和值。或者,如果您熟悉 XPath,您还可以实例化一个DOMXPath对象来查询加载的 DOMDocument 以选择所需的数据。

于 2009-10-31T04:34:07.107 回答