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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

受付中

PythonでHTMLのtablesの特定の行をスクレイピングしたい

k15uke
k15uke

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0回答

0リアクション

0クリップ

39閲覧

投稿2022/11/08 13:22

前提

Pythonでサイトのスクレイピングをしようとしています。
イメージ説明

「合計」の行を1つずつ取り出したく、以下コードを書きました。

該当のソースコード

Python

driver.get(url) html2 = driver.page_source.encode('utf-8') soup2 = BeautifulSoup(html2,'lxml') data = soup2.find("th",text="合計").find_next("td").text data2 = soup2.find("td",text=data).find_next("td").text data3 = soup2.find("td",text=data2).find_next("td").text data4 = soup2.find("td",text=data3).find_next("td").text data5 = soup2.find("td",text=data4).find_next("td").text data6 = soup2.find("td",text=data5).find_next("td").text data7 = soup2.find("td",text=data6).find_next("td").text data8 = soup2.find("td",text=data7).find_next("td").text data9 = soup2.find("td",text=data8).find_next("td").text data10 = soup2.find("td",text=data9).find_next("td").text data11 = soup2.find("td",text=data10).find_next("td").text data12 = soup2.find("td",text=data11).find_next("td").text data13 = soup2.find("td",text=data12).find_next("td").text data14 = soup2.find("td",text=data13).find_next("td").text data15 = soup2.find("td",text=data14).find_next("td").text data16 = soup2.find("td",text=data15).find_next("td").text data17 = soup2.find("td",text=data16).find_next("td").text data18 = soup2.find("td",text=data17).find_next("td").text print("総アクセス数 ") print(data) print("パソコン ") print(data2) print("スマホ ") print(data3) print("携帯 ") print(data4) print("マイガール数 ") print(data5) print("口コミ数 ") print(data6) print("キテネ送信数 ") print(data7) print("オキニトーク 送信したユーザー数 ") print(data8) print("オキニトーク 送信回数 ") print(data9) print("写メ日記(画像・テキスト) 投稿数 ") print(data10) print("写メ日記(画像・テキスト) 通常 ") print(data11) print("写メ日記(画像・テキスト) 会員限定 ") print(data12) print("写メ日記(画像・テキスト) マイガール限定 ") print(data13) print("写メ日記(画像・テキスト) 時間限定 ") print(data14) print("写メ日記(動画) 通常") print(data15) print("写メ日記(動画) 会員限定 ") print(data16) print("写メ日記(動画) マイガール限定 ") print(data17) print("写メ日記(動画) 時間限定 ") print(data18)

実行結果

イメージ説明

5番目までは正確に取れる(ページによって取れなかったりする)のですが、
それ以降は全然違う数値が出てきます。

取り方が悪いのだと思いますが、初心者ゆえどうすればいいか分かりません。
ご教示いただけますでしょうか?

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

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。