我有一本字典。关键是动物。该值是不同动物的列表。 列表的大小和动物的内容将随着每个应用程序的使用而变化。 对于列表中的每个动物,我想搜索我的BeautifulSoup树,查找所有出现的动物并将其包裹在span标记中/用我的span标记动物替换它
我无法将变量传递给re.compile()以帮助搜索这些动物。
我也想知道如果附近没有标签,你可以在BeautifulSoup的字符串中替换一个单词。
Windows 7,Python 2.7,BeautifulSoup 4 代码就像这样
for key, value in animals.iteritems(): #go through dict
if key == 'ANIMALS':
for name in value: #for name of animals in list
animal_tag = soup.new_tag("span", id=key) #create new tag with id=ANIMALS
animal_tag.string = name #create new string with name of animal
name = soup.find(text=re.compile(r'^%s$' % name))
#find animals in doc - keeps throwing a none type error
#replace animal in doc with new <span id="ANIMALS">animal>/span>
我感谢任何人都能给予的任何帮助。
答案 0 :(得分:0)
在这种情况下,我认为使用string.replace()
操纵原始HTML更简单。如果text
等于原始HTML:
for key, value in animals.iteritems():
if key == 'ANIMALS':
for name in value:
text.replace(name,"<span id="+key+">"+name+"</span>")