【发布时间】:2012-07-24 00:36:59
【问题描述】:
使用 PHP 和 DOM 如何从以下代码(网页的一部分)中获取 PLACE、ADDRESS、LOCALITY、REGION、POSTAL CODE 和 COUNTRY。
从现在开始我已经开发了一部分代码来获取其他内容。这是目前为止的代码。
$dochtml = new DOMDocument();
$dochtml->loadHTMLfile('');
$xpath = new DOMXpath($dochtml);
$descr = $xpath->query('//div[@class="description"]')->item(0);
print_r($descr->nodeValue);
$abbr = $dochtml->getElementsByTagName("abbr")->item(0);
$title = $abbr->getAttribute("title");
echo $title;
这是剩下的代码。
<div class="vcard location p">
<div class="fn org">
<a href="link here">PLACE</a>
</div>
<div class="adr">
<div class="street-address">ADDRESS<br></div>
<div>
<span class="locality">LOCALITY</span>,
<span class="region">REGION</span>
<span class="postal-code">POSTAL CODE</span>,
<span class="country-name">COUNTRY</span>
</div>
</div>
</div>
更新
我对以下内容有一个小问题,在页面中有很多 <abbr> 标签,但是我想要的两个标签类 dtstart 和 dtend 如下是唯一在 @987654326 内的标签@。不幸的是,并非所有人都有第二个带有class=dtend 的abbr 标签,因此它从“相关事件”中获得第一个标签。所以我的问题是我如何将它限制在这个特定的 id 上?
<div id="eventDetailInfo">
<div class="p">
<div><abbr class="dtstart" title="2012-07-16T21:00:00">Monday, July 16th, 2012</abbr></div>
<div><abbr class="dtend" title="2012-08-16T21:00:00">Monday, August 16th, 2012</abbr></div>
</div>
</div>
【问题讨论】:
标签: php dom web-scraping