beautifulsoup html.parser错误

时间:2016-03-24 02:13:08

标签: python beautifulsoup

我正在尝试使用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 :(得分:1)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

我也遇到了同样的问题,但是我解决了以下问题:

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

和:

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