【问题标题】:Get entire HTML, not just text with Goutte使用 Goutte 获取整个 HTML,而不仅仅是文本
【发布时间】:2016-02-06 17:10:44
【问题描述】:

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

我该如何获得<br> 或者至少用空格替换它?

HTML 是这样的:

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

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

谢谢!

【问题讨论】:

    标签: php html laravel guzzle goutte


    【解决方案1】:

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

    $node->html();
    

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      strip_tags 用于删除不是&lt;br&gt; 的任何内容,因此它等效于text() 方法,但允许换行标记。然后可以使用str_replace 将它们替换为空格。以上将改变这一点:

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

      进入这个

      Some Text
      

      【讨论】:

      • 太好了。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      相关资源
      最近更新 更多