我只有一个标签
headTag = soup.find_all('h1', text='Attendance List')
aTag = soup.new_tag('a')
aTag['class'] = "btn btn-default pull-right"
aTag.string = "Today"
headTag[0].insert_before(aTag)
aTag.string = "Weekly"
headTag[0].insert_before(aTag)
aTag.string = "Monthly"
headTag[0].insert_before(aTag)
但是它仅添加了最后一个,是否有更好的方法来执行此操作而不声明多个变量?
答案 0 :(得分:2)
问题在于,您仅创建一个标签,然后重复修改其string
属性,而不是创建三个单独的标签并插入所有标签。这就是为什么它仅附加一个标签,以及最终结果是字符串的最后一个原因的原因。
要执行所需的操作,请使用for循环并为每个字符串创建一个新标签,如下所示:
headTag = soup.find_all('h1', text='Attendance List')
for s in ["Today", "Weekly", "Monthly"]:
aTag = soup.new_tag('a')
aTag['class'] = "btn btn-default pull-right"
aTag.string = s
headTag[0].insert_before(aTag)