楽天証券のサイトに自動で入って、保有資産実績が書かれたcsvを定期取得したい
こんばんは。
現在つみたてNISAとiDecoを開始し、保有資産の実績を自動で取得してデータ分析に活かしたいと考えています。
そのため、SeleniumとBeautifulSoupを使って自動でcsvを取ってくるところまで行いたいと考えています。
ところが、BeautifulSoupで取得したhtmlの<body>に何も入っておらず、指定した場所をクリックできなくなってしまいました。
スクリプト
楽天証券のサイトに自動で入り、入ったサイトのURLを取得して その中の<img>タグをクリックしたいです。
以下のようなスクリプトを書きました。
Python
1from selenium import webdriver as WD 2from time import sleep 3from bs4 import BeautifulSoup as bs 4import requests as rq 5 6browser = WD.Chrome() 7url = "https://www.rakuten-sec.co.jp" 8browser.get(url) 9 10 11element1 = browser.find_element_by_id("form-login-id") 12element2 = browser.find_element_by_id("form-login-pass") 13element3 = browser.find_element_by_class_name("s3-form-login__btn") 14 15element1.send_keys("xxxxx") 16element2.send_keys("xxxxx") 17element3.click() 18 19currentUrl = browser.current_url 20 21print(currentUrl) 22 23rq = rq.get(currentUrl) 24soup = bs(rq.text, "html.parser") 25print(soup) 26imgs = soup.find_all("img") 27print(imgs) 28 29#browser.quit()
上記のprint(soup)でhtmlが取得できますが、その中身は以下の通りでした。
html
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 3<html> 4<script language="javascript"> 5<!-- 6 // 自動ログアウト制御用のクッキーキーを削除 7 var lDate = new Date(); 8 lDate.setTime(0); 9 document.cookie = "alo=;expires="+lDate.toGMTString(); 10 11 window.top.location.replace("https://www.rakuten-sec.co.jp/session_error.html"); 12 13//--> 14</script> 15<body> 16 17 18 19 20 21 22</body> 23</html>
中身が空っぽなので、<img>を取得しようにもできませんでした。
疑問点
- なぜbodyの中身が取れていないのかわからない
- どのようにすればbodyの中身が取れるか教えて欲しい
いつもありがとうございます
今日、YouTubeの2時間くらいの講座を受講して覚えた程度の実力です。
そのためまだ実力としては下位レベルで、もしかしたら意味不明な質問をしているかもしれません。
私は完全独学を貫いていますが、それができるのは皆様のおかげです。
どうか、お力添えをお願いいたします。
回答1件
あなたの回答
tips
プレビュー