为了账号安全,请及时绑定邮箱和手机立即绑定

BeautifulSoup4:文本中的“&”号

BeautifulSoup4:文本中的“&”号

芜湖不芜 2021-03-28 12:13:16
我在使用BeautifulSoup4时遇到问题...(我是一名Python / BeautifulSoup新手,如果我很笨,请原谅我)为什么执行以下代码:from bs4 import BeautifulSoupsoup_ko = BeautifulSoup('<select><option>foo</option><option>bar & baz</option><option>qux</option></select>')soup_ok = BeautifulSoup('<select><option>foo</option><option>bar and baz</option><option>qux</option></select>')print soup_ko.find_all('option')print soup_ok.find_all('option')产生以下输出:[<option>foo</option>, <option>bar &amp; baz</option>][<option>foo</option>, <option>bar and baz</option>, <option>qux</option>]我期望得到相同的结果,包含3个选项的数组...但是BeautifulSoup似乎不喜欢文本中的&符?如何在不编辑HTML(或通过转换/转换)的情况下摆脱它并获得正确的数组?
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

&在HTML中用于输入所谓的HTML实体。例如,它<是HTML中的特殊符号,因为它以标签开头,因此您可以&lt;改用。

因此,&它本身也是一个特殊的符号,您应该将它&amp;用作文字“&”号。您的HTML无效,BeautifulSoup对其进行了修复。


查看完整回答
反对 回复 2021-03-30
?
冉冉说

TA贡献1877条经验 获得超1个赞

正如我在编辑的第一篇文章中所说的那样,这是BeautifulSoup 4.2.0中的一个错误,我下载了4.2.1,该错误消失了。


查看完整回答
反对 回复 2021-03-30
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

如前所述,&是HTML语言的一部分,但如有必要,您可以在BeautifulSoup之前使用html.escape,然后在必要时使用html.unesacpe


查看完整回答
反对 回复 2021-03-30
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信