我正在尝试使用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")
有什么想法吗?
答案 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))
答案 1 :(得分:0)
答案 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")