我可以使用
访问某些“类”项$ret = $html->find('articleINfo'); and then print the first key of the returned array.
但是,我需要其他标签,例如span = id“firstArticle_0”,我似乎无法找到它。
$ret = $html->find('#span=id[ etc ]');
在某些情况下会返回一些内容,但它不是数组,或者是一个空键的数组。
不幸的是我不能使用var_dump来查看对象,因为var_dump会产生1000页不可读的垃圾。代码看起来像这样。
<div id="articlething">
<p class="byline">By Lord Byron and <a href="www.marriedtothesea.com">Alister Crowley</a></p>
<p>
<span class="location">GEORGIA MOUNTAINS, Canada</span> |
<span class="timestamp">Fri Apr 29, 2011 11:27am EDT</span>
</p>
</div>
<span id="midPart_0"></span><span class="mainParagraph"><p><span class="midLocation">TUSCALOOSA, Alabama</span> - Who invented cheese? Everyone wants to know. They held a big meeting. Tom Cruise is a scientologist. </p>
</span><span id="midPart_1"></span><p>The president and his family visited Chuck-e-cheese in the morning </p><span id="midPart_2"></span><p>In Russia, 900 people were lost in the balls.</p><span id="midPart_3">
答案 0 :(得分:0)
尝试使用此功能。为我工作非常好,非常容易使用。 http://code.google.com/p/phpquery/
答案 1 :(得分:0)
可以轻松使用简单的HTML DOM来查找具有特定类的跨度。
如果想要所有跨度与class = location,那么:
// create HTML DOM
$html = file_get_html($iUrl);
// get text elements
$aObj = $html->find('span[class=location]');
然后执行以下操作:
foreach($aObj as $key=>$oValue)
{
echo $key.": ".$oValue->plaintext."<br />";
}
使用你的例子我的输出是:
label = span,class = location:Found 1
0:加拿大乔治亚山区
希望有帮助...并且请简单的HTML DOM非常适合它的功能,并且一旦掌握了它就很容易使用。继续尝试,你会有一些你只是一遍又一遍地使用的例子。我已经删除了一些非常疯狂的页面,它们变得更容易,更容易。
答案 2 :(得分:0)
PHP简单DOM解析器上的文档在解密Open Graph元标记时不尽如人意。这似乎对我有用:
<?php
// grab the contents of the page
$summary = file_get_html($url);
// Get image possibilities (for example)
$img = array();
// First, if the webpage has an og:image meta tag, it's easy:
if ($summary->find('meta[property=og:image]')) {
foreach ($summary->find('meta[property=og:image]') as $e) {
$img[] = $e->attr['content'];
}
}
?>