我对python和beautifulsoup都很陌生,所以也许我找不到一个简单的答案。
当我致电.new_tag('name')
时,我也可以分配.new_tag('a', href='#', id='link1')
但是我不能用这种方式分配课程,因为它是保留字。此外,我无法以这种方式添加名称,因为它被用作标记名称属性的关键字。我知道我可以稍后使用tag['class']
添加它们,但我想知道,这是将类添加到新标记的唯一方法吗?或者有一种方法可以一步到位吗?
答案 0 :(得分:20)
你是对的 - class是一个python保留字,不能用作关键字参数,因为语言解析器会抱怨。
解决这个问题的方法 - 您可以通过前面带有**
的字典来提供函数关键字参数。
这样" class"只是另一个字符串,在解析python语法时不会与保留字冲突,但关键字参数在运行时正确传递。
在您的情况下,解决方法应该是 -
soup.new_tag('a', href='#', id='link1', **{'class':'classname'})
我知道有点丑,但它有效..;)
答案 1 :(得分:1)
您可以使用attrs字典:
soup.new_tag("a",attrs={"class": "classname", "href" : "#", "id" : "link1"})
结果将是:
<a class="classname" href="#" id="link1"></a>