1

我有一本字典。关键是动物。该值是不同动物的列表。列表的大小和动物是什么将随着每个应用程序的使用而改变。对于列表中的每个动物,我想通过我的 BeautifulSoup 树搜索,找到该动物的所有出现并将其包装在跨度标记中/用我的跨度标记动物替换它

我无法将变量传递给 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>  

我感谢任何人可以提供的任何帮助。

4

1 回答 1

1

在这种情况下,我认为使用string.replace(). 如果text等于原始 HTML:

for key, value in animals.iteritems():
    if key == 'ANIMALS':                    
        for name in value:
            text.replace(name,"<span id="+key+">"+name+"</span>")
于 2013-07-25T16:55:10.817 回答