获取元素之外的文本(Get text outside of elements)

2019-10-20 19:57发布

我使用简单的HTML DOM刮网站。 我所遇到的问题是,有定位任何特定的元素之外的文本。 这似乎是内部的唯一元件是<div id="content">

<div id="content">
    <div class="image-wrap"></div>
    <div class="gallery-container"></div>
    <h3 class="name">Here is the Heading</h3>

    All the text I want is located here !!!

    <p> </p>
    <div class="snapshot"></div>
</div>

我想在网站站长搞砸和文本实际上应该是内部<p>标签。

我用下面这段代码试过,但它只是不会检索文本:

    $t = $scrape->find("div#content text",0);
    if ($t != null){
        $text = trim($t->plaintext);
    }

我还是一个新手,还在学习。 谁能帮助呢?

Answer 1:

你几乎没有...使用测试循环来显示您的节点的内容,并找到想要的文本索引。 例如:

// Find all texts
$texts = $html->find('div#content text');

foreach ($texts as $key => $txt) {
    // Display text and the parent's tag name
    echo "<br/>TEXT $key is ", $txt->plaintext, " -- in TAG ", $txt->parent()->tag ;
}

你会发现,你应该使用索引4 ,而不是0

$scrape->find("div#content text",4);

如果你的文本不必须总是相同的指标,但你知道的例子,它遵循h3标题,然后你可以使用这样的:

foreach ($texts as $key => $txt) {
    // Locate the h3 heading
    if ($txt->parent()->tag == 'h3') {
        // Grab the next index content from $texts
        echo $texts[$key+1]->plaintext;
        // Stop
        break;
    }
}


文章来源: Get text outside of elements