PythonでChromeを自動操縦して、楽天証券のwebサイトにアクセスし、保有商品.csvをダウンロードする方法について紹介します。
このPythonでできること
Pythonを実行すると、楽天証券のログインページからログインID・パスワードを入力してログインし、保有商品ページに移動した後、[CSVで保存]を実行します。
ソースコードと解説
下記のソースコードをpyファイルにコピペし、7行目のloginIDとPasswordを書き換えた後、プログラムを実行することで、Chromeを自動操縦して楽天証券の保有商品情報を取得するできます。
注意点として、下記のプログラムではWebブラウザを自動操縦するために「Selenium」というライブラリと「ChromeDriver」というWebドライバを使用しているため、実行する前に上記の2つを別途インストールする必要があります。
#SeleniumのWebDriverをインポート
from selenium import webdriver
import os, time
# 楽天証券のログインの情報を指定
login_url = 'https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html'
user_id, password = ('loginID', 'password') #任意のログインID,パスワードを入力
# 保存先フォルダ(絶対パスで指定)
save_dir = os.path.dirname(os.path.abspath(__file__))
save_file = save_dir + '/list.csv'
# Chromeのオプションで保存先フォルダを設定
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {
'download.default_directory': save_dir})
# Chromeをヘッドレスモードで起動
options.add_argument('--headless')
# メイン処理
def login_download():
# Chromeを起動
driver = webdriver.Chrome(options=options)
# ログイン処理実行
try_login(driver)
# マイページに移動
link_click_xpath(driver, '/html/body/div[2]/div/div[1]/form[2]/table/tbody/tr[1]/td/span/div/table/tbody/tr[2]/td[1]/div[1]/table/thead/tr[2]/td[1]/nobr/span/a')
# ダウンロード
link_click_xpath(driver, "/html/body/div[2]/div/div[1]/div/div/table[1]/tbody/tr/td/div/table/tbody/tr/td[4]/div/a")
# ダウンロード完了まで最大30秒待機
for i in range(10):
if os.path.exists(save_file): break
time.sleep(1)
# ログイン処理
def try_login(driver):
# ログインページを開く
driver.get(login_url)
# ユーザー名とパスワードを書き込む
usr = driver.find_element_by_name('loginid')
usr.send_keys(user_id)
pwd = driver.find_element_by_name('passwd')
pwd.send_keys(password)
pwd.submit() # 送信
time.sleep(2)
# ラベルを指定してリンクを検索しクリックする
def link_click_xpath(driver, xxpath):
# a = driver.find_element_by_partial_link_text(label)
a = driver.find_element_by_xpath(xxpath)
a.click()
time.sleep(1)
if __name__ == '__main__':
login_download()
コメント