首页 文章

beautifulsoup html.parser错误

提问于
浏览
0

我正在尝试使用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")

有任何想法吗?

4 回答

  • 0

    我也有这个问题,我用谷歌搜索,但我不知道如何解决这个,所以我评论警告印刷部分 . 看到图片这是我如何解决你的问题 .

    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

  • 0

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

  • 1

    在警告本身,他们提供解决方案 . 我按照声明跟着说 . 添加了第二个参数 'html.parser' . 它删除了警告 .

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

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

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

    和:

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

相关问题