使用 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
我在解析一个网站时遇到问题,因为它有一些文本被 <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