python beautifulsoup new_tag:将类指定为属性

时间:2014-04-13 12:50:11

标签: python beautifulsoup

我对python和beautifulsoup都很陌生,所以也许我找不到一个简单的答案。

当我致电.new_tag('name')时,我也可以分配.new_tag('a', href='#', id='link1')

等属性

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

2 个答案:

答案 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>    
相关问题