質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

classのない要素のスクレイピング(python)

takumi090310
takumi090310

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0リアクション

0クリップ

202閲覧

投稿2022/09/27 05:31

前提

大学の研究でスクレイピングをしています。
楽天GORAの口コミ情報をpythonで収集し、エクセルに出力ているのですが、
classのない要素のスクレイピングができません。
https://booking.gora.golf.rakuten.co.jp/voice/detail/c_id/220024

実現したいこと

平均スコアの数字だけをスクレイピングしたいです。
下の例では、86の数字だけにしたいです。

発生している問題・エラーメッセージ

下のコードでは、プレー日などの部分も出力してしまいます。

 86  2022/09/26  富士コースIN  エンジョイ/カジュアル  中級者・上級者   (5)   (3)   (3)   (4)   (4)   (4)   (3)   (3)    2022/08/10  箱根コースIN  エンジョイ/カジュアル  中級者   (5)   (5)   (5)   (5)   (4)   (5)   (4)   (4)

該当のソースコード

python

import requests from bs4 import BeautifulSoup import time import re reviews = [] scores = [] length=1 for j in range(1,5):#ページ範囲 url = "https://booking.gora.golf.rakuten.co.jp/voice/detail/c_id/220024/page/" + str(j) + "/" html = requests.get(url) soup = BeautifulSoup(html.content, "html.parser") tmp_num = 1 tmp_nam = 1 for element in soup.select('.voiceContents'): #口コミ本文のスクレイピング reviews.append(element.text) tmp_num += 1 length += 1 topic=soup.find(class_="voiceDetail-sec02")#平均スコアのスクレイピング for element in topic.find_all("td"): scores.append(element.text) tmp_nam += 1 length += 1 print(element.text) ##以下、エクセル出力に関する部分 import openpyxl wb = openpyxl.Workbook() #エクセルファイルを新規作成 sheet = wb.active sheet.title = '箱根コース口コミ' #excelシート名の変更 sheet["A1"].value = '口コミ' #テーブルタイトル sheet["B1"].value = '平均スコア' for i in range(1,length): sheet.cell(column=1, row=i+1, value=reviews[i-1])#配列reviewsの要素をA列に出力 for i in range(1,length): sheet.cell(column=2, row=i+1, value=scores[i-1])#配列scoresの要素をB列に出力 wb.save('函南ゴルフクラブ口コミ.xlsx') #というファイル名で保存 wb.close()

まだ、初心者で不格好ですが、よろしくお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。