我在使用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 & baz</option>][<option>foo</option>, <option>bar and baz</option>, <option>qux</option>]我期望得到相同的结果,包含3个选项的数组...但是BeautifulSoup似乎不喜欢文本中的&符?如何在不编辑HTML(或通过转换/转换)的情况下摆脱它并获得正确的数组?
3 回答
当年话下
TA贡献1890条经验 获得超9个赞
&
在HTML中用于输入所谓的HTML实体。例如,它<
是HTML中的特殊符号,因为它以标签开头,因此您可以<
改用。
因此,&
它本身也是一个特殊的符号,您应该将它&
用作文字“&”号。您的HTML无效,BeautifulSoup对其进行了修复。
慕码人2483693
TA贡献1860条经验 获得超9个赞
如前所述,&是HTML语言的一部分,但如有必要,您可以在BeautifulSoup之前使用html.escape,然后在必要时使用html.unesacpe
添加回答
举报
0/150
提交
取消