pythonでhtmlデータを抜き出しcsvファイルに出力したく、自分で試してみたのですが、エラーが出力されてしまいうまくいかず、質問させてもらいました。
import urllib.request, urllib.error from bs4 import BeautifulSoup import csv # アクセスするURL url = "https://www.homemate-research-baseball.com/dtl/00000000000000387599/" # URLを開く html = urllib.request.urlopen(url) # BeautifulSoupで開く soup = BeautifulSoup(html, "html.parser") mod_adress_head = soup.select_one(".mod_adress_head") table_adrs = mod_adress_head.select(".adrs") item_name = table_adrs.select_one(".name") item_data = table_adrs.select_one(".data") item_access = table_adrs.select_one(".access") csvlist = [["","名称","所在地","交通アクセス"]] # CSVファイルを開く。ファイルがなければ新規作成する。 csvlist.append([item_name]) csvlist.append([item_data]) csvlist.append([item_access]) f = open("output.csv", "w") writecsv = csv.writer(f, lineterminator='\n') # 出力 writecsv.writerows(csvlist) # CSVファイルを閉じる。 f.close()
こちらを実行しますと、以下のエラーが出力されます。
"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
AttributeError: ResultSet object has no attribute 'select_one'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?
こちらのエラーの解決のため、ご助言頂けましたら幸いです。
よろしくお願いします。
追記です
エラーの出ている箇所なのですが、
baseball.py", line 17, in <module> item_name = table_adrs.select_one(".name")
こちらのように記述されているため、17行目に発生しているものと思われます。
回答1件
あなたの回答
tips
プレビュー