1

Simple_HTML_Dom 非常适合抓取特定标签中的内容,但我不确定在抓取文本时如何做超出基础的任何事情。这是我从中抓取的代码的示例:

<span>
Some code stuff.
</span>
FirstWord: 88
<span>
More code stuff.
</span>

如您所见,FirstWord 和 88 没有包含在任何类型的标签中。这使得它们很难被抓住。不过,问题是:FirstWord 总是一样的——只是数字发生了变化。

所以,我的想法是简单地告诉 Simple_HTML_Dom 获取紧跟在 FirstWord 之后的数字。问题是我不知道如何做到这一点。

任何帮助是极大的赞赏。

4

2 回答 2

1
preg_match_all('/FirstWord:\s?([0-9]+)/', $input, $matches);
print_r($matches);
于 2013-02-26T23:06:00.437 回答
0

您可以使用消除过程,假设您的 html 看起来像这样..

<html>
    <head></head>
    <body>
        <span>Some code stuff.</span>
        FirstWord: 88
        <span>More code stuff.</span>
    </body>
</html>

您可以遍历所有子元素(在这种情况下将是<span>元素),并将它们的 html 设置为空字符串。这将使您只剩下“FirstWord:88”。

foreach($html->find('body', 0)->children() as $child){
    $child->outertext = "";
}

echo $html;
// Output:
// FirstWord: 88
于 2013-02-28T04:34:29.260 回答