此代码将hrefs返回给内容,现在我想从此hrefs中提取内容并将其发送到我的视图。我需要提取的名称div:
<div class="c_pad">
<div class="c_label">
<span class="std_header2">Contact:</span>
</div>
<div class="c_name">
<span class="std_text_b">Monkey</span>
</div>
<div class="clear"></div>
</div>
<div class="c_pad">
<div class="c_label">
<span class="std_header2">Phone number:</span>
</div>
<div class="c_phone">
<span class="std_text_b">001111111</span>
</div>
<div class="clear"></div>
</div>
for($i=0; $i <= 1; $i++)
{
$p = new Client();
$d = $p->request('GET', ''.$link.'&std=1&results='. $i);
$n = $d->filter('a[class="o_title"]')->each(function ($node)
{
$pp = new Client();
$dd = $pp->request('GET', $node->attr('href'));
$kk = $dd->filter('div[id="adv_desc"]')->each(function ($tekst) { echo $node->attr('href').'<br>'.$tekst->text();
});
});
}
答案 0 :(得分:3)
您想要使用属性过滤特定标记。
但您正在使用$d->filter('a[class="o_title"]')
。
这会使用属性a
过滤标记class="o_title"
。而且这不属于您的内容。
您只需调整节点过滤器即可选择正确的元素。
使用jQuery选择器语法:https://api.jquery.com/category/selectors/
引用Goutte使用的Symfony的DomCrawler文档: http://symfony.com/doc/current/components/dom_crawler.html#node-filtering