Php 如何使用痛风爬虫提取数据?
这段代码,将hrefs返回到内容,现在我想从这个hrefs中提取内容并将其发送到我的视图。我需要提取的名称div:Php 如何使用痛风爬虫提取数据?,php,goutte,domcrawler,Php,Goutte,Domcrawler,这段代码,将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">Mon
<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>
联系人:
猴子
电话号码:
001111111
for($i=0;$i请求('GET'、'.$link.'&std=1&results='.$i));
$n=$d->filter('a[class=“o_title”]”)->每个(函数($node)
{
$pp=新客户端();
$dd=$pp->request('GET',$node->attr('href');
$kk=$dd->filter('div[id=“adv_desc”]”)->每个函数($tekst){echo$node->attr('href')。
。$tekst->text();
});
});
}
您希望使用属性筛选特定标记
但是您使用的是$d->filter('a[class=“o_title”]”)
。
这将过滤带有属性class=“o_title”
的标签a
,而该属性不属于您的内容
只需调整节点过滤器即可选择正确的元素
使用jQuery选择器语法:
参考Goutte使用的Symfony DomCrawler的文档:
编辑了第一篇文章..但是现在:
未定义变量:node
您正在处理一些没有人可以帮助您的事情,因为我们无法重现这个问题。例如:在您的示例中,有id=adv_desc
的div
?为什么每个(函数($tekst)
?输出变量$node以检查内容。var_dump()是您的朋友。
<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();
});
});
}