【问题标题】:How to extract data with Goutte Crawler?如何使用 Goutte Crawler 提取数据?
【发布时间】:2015-06-25 07:02:38
【问题描述】:

这段代码,返回内容的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(); 
                    });
         });
    }

【问题讨论】:

    标签: php goutte domcrawler


    【解决方案1】:

    您想过滤带有属性的特定标签。

    但您使用的是$d-&gt;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

    【讨论】:

    • 编辑了第一篇文章.. 但现在:Undefined variable: node
    • 您正在做一些事情,没有人可以帮助您,因为我们无法重现该问题。例如:在您的示例中,divid=adv_desc 的位置在哪里?为什么each(function ($tekst)?输出变量 $node 以检查内容。 var_dump() 是你的朋友。
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2021-02-24
    • 2019-10-29
    • 2018-08-21
    • 2017-10-13
    • 2016-05-05
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多