下記のコードにより、指定したページの要素をループで取得し、変数を名前にしたcsvファイルを複数書き出したいのですがエラーが出てしまいます。
クソ雑魚で申し訳ございませんが。対処法をご存知の方がいましたらご教授いただけますと幸いです。
自分が書いたコード↓
from time import sleep
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = "https://alert.shop-bell.com/books/magazine/{}"
d_list = []
for i in range(1, 10):
print('d_listの大きさ:', len(d_list))
target_url = url.format(i)
print(target_url)
r = requests.get(target_url) sleep(1) soup = BeautifulSoup(r.text) comics = soup.select('table[id="reflow"] > tbody > tr') for comic in comics: title = comic.find('a').text author = comic.find('span', attrs={'class': 'muted'}).text #release_date = comic.find('td', attrs={'class': 'srpLatest'}).text.split('巻')[1] release_date = comic.find('td', attrs={'class': 'srpLatest'}).text if '巻' in release_date: release_date = release_date.split('巻')[1] d = {'title': title, 'author': author, 'release_date': release_date} d_list.append(d) df = pd.DataFrame(d_list) name = soup.find("h2") df.to_csv(name + '.csv',encoding="utf-8-sig")
from pprint import pprint
pprint(d_list, width=50, sort_dicts=False)
出てきたエラー↓
TypeError Traceback (most recent call last)
<ipython-input-60-7edcfaec4a55> in <module>
28 df = pd.DataFrame(d_list)
29 name = soup.find("h2")
---> 30 df.to_csv(name + '.csv',encoding="utf-8-sig")
31
32 from pprint import pprint
TypeError: unsupported operand type(s) for +: 'Tag' and 'str'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/16 11:29