我有一个让我烦恼的问题。我正在使用cURL和phpQuery的组合从网页中获取一些内容。
在我正在提取的页面中,有以下代码可确定帖子评分:
<div class="post">
<ul id="thumb_ul" class="star-rating" style="width:60px;">
<li class="current-rating" style="width:0px;"></li>
</ul>
</div>
我正在使用phpQuery,如下所示:
$pqD = phpQuery::newDocument($buffer);
foreach(pq('div.post') as $li) {
$rating = pq($li)->find('ul > li.current-rating')->attr('style');
}
评分显然是在<li>
标记的style
标记中定义的。我想过用pq($li)->find('ul > li.current-rating')->attr('style')
访问它,我希望得到width:0px
。
评级定义如下:0-0,12-1,24-2,......,60-6。
然而,phpQuery似乎对空标签非常“感兴趣”。对于我从页面抓取的所有其他东西,它运作良好。
有什么想法吗? THX
答案 0 :(得分:2)
<强>更新强>
完整测试来源:(复制和测试)
<?php
require_once('phpQuery/phpQuery.php');
$buffer = '
<div class="post">
<ul id="thumb_ul" class="star-rating" style="width:60px;">
<li class="current-rating" style="width:0px;"></li>
<li class="current-rating" style="width:6px;"></li>
<li class="current-rating" style="width:8px;"></li>
</ul>
</div>
';
$doc = phpQuery::newDocument($buffer);
foreach ($doc['.post ul li.current-rating'] as $li) {
$rating .= pq($li)->attr('style');
// or $rating[] .= if you need an array()
}
echo $rating; //ouput: width:0px;width:6px;width:8px;
?>