使用 Goutte 获取整个 HTML,而不仅仅是文本

Get entire HTML, not just text with Goutte

我在解析一个网站时遇到问题,因为它有一些文本被 <br> 分割开,但是当我使用 $node->text() 时,甚至没有 space代替 <br>

我怎样才能得到 <br> 或者至少用 space 替换它?

HTML是这样的:

<span>Some<br>Text</span>

目前我得到 SomeText 我希望它是 Some Text;

谢谢!

对于 Goutte,您可以使用 html() 方法。

$node->html();

它会包括 <br/> 不过。然后您可以使用 strip_tags 删除 html 标签。

$text = strip_tags($node->html());

Goutte 可能有一种内置的方法。

您可以检索该节点的 HTML 而不是文本,并自己将 <br> 标记替换为空格。这样的事情应该做的很好:

str_replace('<br>', ' ', strip_tags($node->html(), '<br>'));

strip_tags 用于删除任何不是 <br> 的内容,因此它等同于 text() 方法,但允许换行标记。然后可以使用 str_replace 将它们替换为空格。以上将转换为:

<span>Some<br>Text</span>

进入这个

Some Text