【问题标题】:how to get div class value using dom document如何使用 dom 文档获取 div 类的值
【发布时间】:2015-07-19 06:04:46
【问题描述】:

如何使用 dom 文档获取 div 类的值

我需要回显这个值4,458 members

从下面的代码

< div class="mbs fcg">4,458 members< /div>

现在我的原始代码是

$links = $dom->getElementsByTagName('div');

foreach ($links as $link){

echo $link->nodeValue;
echo $link->getAttribute('class');

}

如何定位这个特定的class = mbc fcg

现在用我现在的代码,我得到了所有的 div 值。

我应该做些什么改变

【问题讨论】:

标签: php html web-scraping domdocument


【解决方案1】:

您将需要使用DOMXPath,它将采用一个 DOMDocument 实例

$xpath   = new DOMXPath( $dom );
// if the className doesn`t changes
$members = $xpath->query( '//div[@class="mbs fcg"]' );
// if the class name changes ex. class="mbs fcg my-other class-name"
$members = $xpath->query( '//div[contains(@class,"mbs fcg")]' );

或者,如果你想遍历你的 div,你可以尝试

$divs = $dom->getElementsByTagName( 'div' );
foreach( $divs as $div ){
    // if the className doesn`t changes
    if( $div->getAttribute( 'class' ) === 'mbs fcg' ){
        echo $div->nodeValue;
    }
    // if the class name changes ex. class="mbs fcg my-other class-name"
    if( strpos( $div->getAttribute( 'class' ), 'mbs fcg' ) !== false ){
        echo $div->nodeValue;
    }
}

【讨论】:

  • 欢迎您,我很高兴能为您提供帮助。您还应该将其标记为正确答案
【解决方案2】:

注意::: 这是一个 JAVASCRIPT 解决方案...不是 PHP DOMDOCUMENT 解决方案

试试这个 HTML:

<div id="ME" class="mbs fcg">4,458 members</div>

...还有这个 Javascript:

var WANTED_TEXT = document.getElementById('ME').firstChild.nodeValue;

EDIT2:

如果您真的想要,从所有出现的具有class='mbs cfg' 的元素中获取所有文本节点...然后尝试以下 HTML:

<div class="mbs fcg">4,458 members</div>

...还有这个 Javascript:

var Collection = document.getElementsByClassName('mbs fcg');

for(i=0; i<Collection.length; i++) {
    Texts = Collection[i].firstChild.nodeValue;
    document.write('<p>'+Texts+'</p>');
}

这应该与集合中所有元素的纯文本相呼应。

【讨论】:

  • 我没有选择添加 div id 先生。因为我正在从其他网站报废
  • 不使用javascript我们可以刮先生,我的意思是在domdocument的帮助下我想刮
  • 我自己没试过……但是,我想是的。
  • 哦……这只是 PHP……抱歉……我没有注意到! ...您应该忽略我的答案,这是一个 JavaScript 解决方案。
  • 没关系,先生,您有什么 id 可以用 php 编写吗
【解决方案3】:

我认为您需要使用id 来定位单个div,例如:

< div id="my_id_name" class="mbs fcg">4,458 members< /div>

【讨论】:

  • 对不起,我无法添加 div id,我需要从其他网站抓取数据。我只需要刮
猜你喜欢
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
相关资源
最近更新 更多