前提・実現したいこと
Pythonのスクレイピングについて
好きな作家の[著書]、[ユーザー数]、[評価]、[コメント数]を抽出し、
csvに出力し色々コーディングの勉強をしたいのですが、上記の情報を抽出するのに、何回もfor文を書いてしまっています。
1回のfor文でまとめて抽出したいのですが、ご教示頂けないでしょうか。
発生している問題・エラーメッセージ
特になし
該当のソースコード
python
1(import文等は省きます) 2url = requests.get('https://booklog.jp/author/%E7%80%AC%E5%B0%BE%E3%81%BE%E3%81%84%E3%81%93') 3content = url.content 4soup = BeautifulSoup(content,'html.parser') 5 6resultA = [] 7resultB = [] 8resultC = [] 9resultD = [] 10 11for div in soup.select("div.itemListInfo"): 12 13 #本のタイトル 14 title = div.a.string 15 #ユーザー数 16 user = div.span.getText() 17 18 resultA.append(title) 19 resultB.append(user) 20 21 next 22 23for div in soup.select("div.info-rating"): 24 25 #評価 26 num = div.span.getText() 27 resultC.append(num) 28 29 next 30 31for div in soup.select("div.info-reviews"): 32 33 #レビュー 34 num = div.span.getText() 35 resultD.append(num) 36 37 next 38 39
試したこと
itemListInfoというクラスが元となる認識で、
はじめは1回のfor文ですべて取得できると思っていたのですが、
抽出したい情報はspanタグが重複しており、上手くいきませんでした…
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/05 11:48