【问题标题】:Getting the 3rd DIV inside a DIV in DOM在 DOM 中的 DIV 中获取第三个 DIV
【发布时间】:2012-05-20 04:42:43
【问题描述】:

我有一个爬虫,它为特定值爬取网站,该值不直接位于类 div 内,但当然有一个由类指定的父 div。 这个值位于父 div 的第三个 div 中(如果你往下看,你会明白我的意思)。

代码

if($page->find('div.mbcContainer div div span')){       
   foreach($page->find('div.mbcContainer div div span') as $p){ 
      if(trim($p->plaintext)){                      
         $tp = $p->plaintext;
      }
   }
}

html 页面

<div class="mbcContainer">
   <div>
      <div class="ie1"></div>
      <div class="ie2"></div>
      <div>
         <span>get this value</span>
      </div>
   </div>
</div>

我正在尝试获取值为“获取此值”的跨度 有没有办法做到这一点。

【问题讨论】:

  • 您可以用类标记跨度,然后找到该类。 $page-&gt;find('.thespanclass') as $p
  • @Norse 这不是我正在抓取的网站,我无法控制跨度类名称

标签: php dom


【解决方案1】:

编辑: 这就是诀窍:

echo $page->find('div.mbcContainer div', 0)->children(2);

或者如果你想遍历:

foreach ($page->find('div.mbcContainer div') as $p) {
    echo $p->children(2);
}

【讨论】:

    【解决方案2】:
    div.mbcContainer div div:nth-child(3) span
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多