【问题标题】:How to handle <br> </br> and <br/> in Beautiful Soup 4?美汤4中的<br> </br>和<br/>如何处理?
【发布时间】:2015-02-17 20:12:35
【问题描述】:

我正在尝试使用 python 和 Beautiful Soup 4 将某些 html 中的每个中断标记替换为新行。

该文档中有&lt;br&gt;、&lt;br/&gt; 和&lt;/br&gt; 标签,但由于Beautiful Soup 处理标签的方式,只要找到&lt;br&gt;,它就会删除它与下一个&lt;/br&gt; 之间的所有内容看到了。

有没有办法解决这个问题?

【问题讨论】:

    标签: python html parsing web-scraping beautifulsoup


    【解决方案1】:

    尝试为构建器类使用HTMLParserTreeBuilder:

    from bs4 import BeautifulSoup
    from bs4.builder import HTMLParserTreeBuilder
    
    html_doc = """
    <html>this is a test<br> ...between a start and end br... </br> a blank br: <br/> something else
    """
    
    soup = BeautifulSoup(html_doc, builder=HTMLParserTreeBuilder())
    print soup.prettify()
    

    比较没有builder=参数时的输出。

    您可以确定 bs4 使用的是哪个构建器:

    print type(soup.builder)
    

    默认情况下,bs4 似乎选择基于 lxml 的构建器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2010-12-29
      相关资源
      最近更新 更多