加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 如何使用Goutte Crawler提取数据?

发布时间:2020-05-25 08:47:51 所属栏目:PHP 来源:互联网
导读:这段代码,返回hrefs到内容,现在我想从这个hrefs中提取内容并将其发送到我的视图.我需要提取的名称div: div class=c_pad div class=c_label span class=std_header2Contact:/span /divdiv class=c_name span class=std_text

这段代码,返回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(); 
                    });
         });
    }
您想要使用属性过滤特定标记.

但是你使用的是$d-> filter(‘a [class =“o_title”]’).
这会使用属性class =“o_title”过滤标记a.这不是您内容的一部分.

您只需调整节点过滤器以选择正确的元素.

使用jQuery选择器语法:https://api.jquery.com/category/selectors/

引用Goutte使用的Symfony的DomCrawler文档:
http://symfony.com/doc/current/components/dom_crawler.html#node-filtering

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读