前提
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番目までは正確に取れる(ページによって取れなかったりする)のですが、
それ以降は全然違う数値が出てきます。
取り方が悪いのだと思いますが、初心者ゆえどうすればいいか分かりません。
ご教示いただけますでしょうか?