前提条件
language:Python3.7.7
IDE:Pycharm
ディストリビューション:anaconda
コード
HTML上のテーブルを抽出して、加工するためにCSV出力したいです。
Python
1import csv 2from urllib.request import urlopen 3from bs4 import BeautifulSoup 4import time 5 6html = urlopen("https://web.pref.hyogo.lg.jp/kk03/corona_hasseijyokyo.html") 7soup = BeautifulSoup(html, 'html.parser') 8table = soup.find_all("table", {"class": "tbody"}) 9rows = table.find_all("tr")[0] 10 11time.sleep(5) 12 13csvFile = open("coronaHyogo.csv", 'wt', newline='', encoding='utf-8') 14writer = csv.writer(csvFile) 15 16time.sleep(5) 17try: 18 for row in rows: 19 csvRow = [] 20 for cell in row.find_all(['td', 'th']): 21 csvRow.append(cell.get_text()) 22 writer.writerow(csvRow) 23 24 25finally: 26 csvFile.close()
問題となるエラー
Error
1File "corona.py", line 9, in <module> 2 rows = table.find_all("tr")[0] 3 File "C:\Users\detec\Anaconda3\lib\site-packages\bs4\element.py", line 2081, in __getattr__ 4 "ResultSet object has no attribute '%s'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?" % key 5AttributeError: ResultSet object has no attribute 'find_all'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。