実現したいこと
Pythonでログインして、特定の要素を出力する
発生している問題
ログインがうまくいっていないとおもいます。
実行してもlogin window openと出力されるだけです。
前提:ユーザー名とパスワードは環境変数MY_LOGIN_IDとMY_LOGIN_PASSWORDにいれてあります。
誰かご教授ください。。。
また、できればログインをした後に、そのドメインのサイトの任意のページでスクレイピングをする際の方法などもお願いします。
エラーメッセージ無し
該当のソースコード
Python
1import chromedriver_binary 2from selenium import webdriver 3from bs4 import BeautifulSoup 4bs = BeautifulSoup(response.content,"lxml") 5 6 7#export ID,password to os environment 8#you must delete this row on run 9#main class 10class ScrapeLoginAuthSite(): 11 def __init__(self,username,password): 12 self.username = username 13 self.password = password 14 self.url = "https://secure.square-enix.com/oauth/oa/oauthlogin?client_id=dq_comm&response_type=code&svcgrp=Service_SEJ&retu=https%3A%2F%2Fhiroba.dqx.jp%2Fsc%2F&retl=dqx_p&redirect_uri=https%3A%2F%2Fsecure.dqx.jp%2Fsc%2Flogin%2Fexec%3Fp%3D0&facflg=1" 15 #chrome driver -headless mode 16 options = webdriver.ChromeOptions() 17 options.add_argument('--headless') 18 self.driver = webdriver.Chrome(options=options) 19 #if you want debug 20 #self.driver = webdriver.Chrome() 21 22 def main(self): 23 driver = self.driver 24 #Login window 25 print("login window open") 26 driver.get(self.url) 27 username_box = driver.find_element_by_id("sqexid") 28 username_box.send_keys(self.username) 29 password_box = driver.find_element_by_id("password") 30 password_box.send_keys(self.password) 31 submit_button = driver.find_element_by_id("login-button") 32 submit_button.submit() 33 34 if "https://hiroba.dqx.jp/sc/login/characterselect/?p=0" in driver.current_url: 35 print("Mypage window open") 36 element = driver.find_element_by_id("account-additional-info") 37 return element.text 38 39if __name__ == "__main__": 40 login_id = os.environ.get("MY_LOGIN_ID") 41 login_pass = os.environ.get("MY_LOGIN_PASSWORD") 42 text = ScrapeLoginAuthSite(login_id,login_pass).main()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。