【问题标题】:beautifulsoup html.parser errorbeautifulsoup html.parser 错误
【发布时间】:2016-07-11 13:37:10
【问题描述】:

我正在尝试使用 BeautifulSoup 来解析来自 URL 的 HTML 数据。但是,我不断收到警告:

“没有明确指定解析器,因此我使用了适用于该系统的最佳 HTML 解析器(“html.parser”)。这通常不是问题,但如果您在另一个系统上运行此代码,或者在不同的虚拟环境中,它可能使用不同的解析器并且行为不同。

要消除此警告,请更改以下内容:

 BeautifulSoup([your markup])

到这里:

 BeautifulSoup([your markup], "html.parser")

  markup_type=markup_type))

我现在有

url = "myurl.com"


page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page, "html.parser")

有什么想法吗?

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    我也有这个问题,我用谷歌搜索,但我不知道如何解决这个问题,所以我评论了警告打印部分。看图片,这就是我解决像你这样的问题的方法。

    if builder.is_xml:
        markup_type = "XML"
            else:
                markup_type = "HTML"
                #warnings.warn(self.NO_PARSER_SPECIFIED_WARNING % dict(
                #parser=builder.NAME,
                #markup_type=markup_type))
    

    fixed bs4 warning showing problem

    【讨论】:

      【解决方案2】:

      所以BeautifulSoup 期望您使用更好的 解析器。查看this。还可以尝试安装here 推荐的解析器。但是您还需要确保您的目标环境具有这些解析器。

      【讨论】:

        【解决方案3】:

        在警告本身中,他们提供了解决方案。我只是按照声明进行的。添加了第二个参数'html.parser'。它删除了警告。

        parsed_html = BeautifulSoup(html,'html.parser')
        

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题,但我解决了如下:

          if builder.is_xml:
             markup_type = "lxml"
          else:
             markup_type = "HTML"
          

          和:

          soup = BeautifulSoup(sys.stdin) update as
          soup = BeautifulSoup(sys.stdin,"html.parser")
          

          【讨论】:

            猜你喜欢
            • 2018-08-26
            • 2019-02-17
            • 2021-06-16
            • 2021-01-24
            • 2018-01-11
            • 1970-01-01
            • 2014-06-26
            • 2017-02-26
            • 2012-05-18
            相关资源
            最近更新 更多