小编rei*_*ike的帖子

BeautifulSoup 插入 HTML 数据属性

我试图在我的汤中插入一个新的 HTML 标签,但不知道如何继续。问题是我希望标签具有“data-toggle”属性,但 BeautifulSoup 似乎无法处理这个问题。

\n\n
In [79]: tag = soup.new_tag("li")\n\nIn [80]: tag\nOut[80]: <li></li>\n\nIn [81]: tag2 = soup.new_tag("a")\n\nIn [82]: tag.append(tag2)\n\nIn [83]: tag\nOut[83]: <li><a></a></li>\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n
In [89]: tag = soup.new_tag("li")\n\nIn [90]: tag2 = soup.new_tag("a",href="#")\n\nIn [91]: tag2 = soup.new_tag("a",data-toggle="pill")\n  File "<ipython-input-91-554760df4122>", line 1\n    tag2 = soup.new_tag("a",data-toggle="pill")\n                           ^\nSyntaxError: keyword can\'t be an expression\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

我用谷歌搜索了这个错误,最终找到了一个 bs4 文档页面(https://www.crummy.com/software/BeautifulSoup/bs4/doc/),其中指出“某些属性,例如 HTML 5 中的 data-* 属性,具有不能用作关键字参数名称的名称\xe2\x80\x99”,建议使用 attrs={"data-foo": "value"}。关键是它确实可以与某些方法一起使用(例如:find_all),但不能与 new_tag() 一起使用。

\n\n
In [97]: tag2 = soup.new_tag("a",attrs={"data-toggle":"pill"}) \nIn [98]: tag2\nOut[98]: <a attrs="{\'data-toggle\': \'pill\'}"></a>\n
Run Code Online (Sandbox Code Playgroud)\n\n …

python beautifulsoup

3
推荐指数
1
解决办法
1222
查看次数

标签 统计

beautifulsoup ×1

python ×1