AttributeError:str没有属性追加(网页报废,链接)

时间:2018-06-09 00:13:15

标签: python web-scraping beautifulsoup attributes attributeerror

所以我正在做这个项目,一个小小的搜索引擎。 在下面的函数中,我尝试从网站的内容构建索引和数据库。 (索引是索引[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 )

1 个答案:

答案 0 :(得分:0)

这行创建index[word]的初始值是将其设置为字符串:

        index[word] = ( url )

您应该将其设置为列表:

        index[word] = [ url ]

然后你可以追加它。