@fujiwaraz (藤原 禅)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

appendでリスト化されない場合の対処法を教えてください。

解決したいこと

ここに解決したい内容を記載してください。

スクレイピングで抜き出したものをリスト化したいのですが
appendを使うとエラーが出てしまいます。

エラー

---------------------------------------------------------------------------
     10     soup_note = BeautifulSoup(r.text, 'html.parser')
     11     username = soup_note.find('h2').text
---> 12     username.append(username)
     13     notebook = soup_note.find('textarea').text
     14     notebook.append(notebook)

AttributeError: 'str' object has no attribute 'append'

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

username=[]
notebook=[]

for i in range(len(detail_url_list)):
    title_link = detail_url_list[i]
    r = session.get(title_link)
    r.encoding = r.apparent_encoding
    time.sleep(1)
    soup_note = BeautifulSoup(r.text, 'html.parser')
    
    username = soup_note.find('h2').text
    username.append(username)
    notebook = soup_note.find('textarea').text
    notebook.append(notebook)   

例)


自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

0 likes

1Answer

for の外で username = [] していますが、これは使われていません。 for の中で username = soup_note.find('h2').text した時点で username に文字列がセットされます。文字列に対して .append() を呼んでいるせいでエラーが出ます。

以下のように変数名を分けてください。

usernames=[]

for i in range(len(detail_url_list)):
    # 略
    username = soup_note.find('h2').text
    usernames.append(username)

notebook についても同様です。

1Like

Your answer might help someone💌