python beautifulsoup new_tag : assign class as an attribute

标签 python beautifulsoup

我是 python 和 beautifulsoup 的新手,所以也许有一个我找不到的简单答案。

当我调用 .new_tag('name') 时,我还可以分配像 .new_tag('a', href='#', id='link1') 这样的属性

但是我不能这样分配类,因为它是保留字。我也不能以这种方式添加名称,因为它被用作标签名称属性的关键字。我知道我可以稍后添加它们,例如使用 tag['class'],但我想知道,这是将类添加到新标签的唯一方法吗?或者有一种方法可以一步完成吗?

最佳答案

你是对的 - class 是 python 保留字,不能用作关键字参数,因为语言解析器会提示。

有一种解决方法 - 您可以通过以 ** 开头的字典为函数关键字参数提供参数。 这样,“class”只是另一个字符串,在解析 python 语法时不会与保留字冲突,但关键字参数会在运行时正确传递。

在您的情况下,解决方法应该是 -

soup.new_tag('a', href='#', id='link1', **{'class':'classname'})

我知道有点丑,但它有效..;)

关于python beautifulsoup new_tag : assign class as an attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042963/

相关文章:

python - Beautifulsoup 4 美化输出 XHTML,而不是 HTML

python - 如何使用python从字符串定义函数

python - 无法用Python编写网络爬虫

python - 如何在解析网页时摆脱所有智能引号?

python - 如何为本地补丁包添加依赖项?

python - 使用 BeautifulSoup Python 在标签内搜索

python - 找不到别名的词法分析器

javascript - 导入 .js 文件并使用其中的定义

python - 追加元组的元组

android - 在安卓上使用 python 和 matplotlib