所以我正在做这个项目,一个小小的搜索引擎。 在下面的函数中,我尝试从网站的内容构建索引和数据库。 (索引是索引[word] = [url]的字典,所以对于每个单词,它出现的url列表。而db是一个字典,其中db [url] = [(title,score)]其中每个url找到了,它的标题和得分已经过时。
现在,我有了AttributeError' str'对象没有属性'追加'在add_to_index函数中。 (我还附加了get_content函数以及调用add_to_index的函数。 在这里我附上代码,如果有人可以提供帮助!谢谢!
def get_content( url , soup , index , db):
title = soup.title.text.strip()
head = soup.head.text.strip()
body = soup.body.text.strip()
p = soup.find_all('p')
h1 = soup.find_all('h1')
h2 = soup.find_all('h2')
h3 = soup.find_all('h3')
#Introduce all of what we have got
add_to_index( index , db, url , title , 1 )
add_to_index( index , db, url , head , 2 )
add_to_index( index , db, url , body , 3 )
add_to_index( index , db, url , p , 4 )
add_to_index( index , db, url , h1 , 4 )
add_to_index( index , db, url , h2 , 4)
add_to_index( index , db, url , h3 , 4)
def add_to_index( index , db , url , section , score ):
for word in section:
if word in index:
index[word].append(url)
else:
index[word] = ( url )
if word == title and not url in db:
db[url] = ( title , score )
答案 0 :(得分:0)
这行创建index[word]
的初始值是将其设置为字符串:
index[word] = ( url )
您应该将其设置为列表:
index[word] = [ url ]
然后你可以追加它。