前提・実現したいこと
PYTHONの勉強としてwebスクレイピングしてます。
やりたいことは社内の勤怠システムの残業時間から月末の残業代を試算するスクリプト作成です。
下が勤怠システムの画面です。(社内システムのためURLは載せれません。すみません。)
発生している問題・エラーメッセージ
printされるメッセージが6/9以降空行が出力されてしまいます。
何か考えられる要因はありますでしょうか?
デバッグ方法のアドバイスでも良いのでご意見頂ければと思います。
(追記)
options.add_argument('--headless') をコメントアウトしてみると
15行目まで出力されるようになりました。
表示された画面上もだいたい15秒目まで表示され、以降はスクロールしないと見えない状態でした。
要はスクロールで隠れてる部分が出力できないようです。
ここまでは分かりましたが、対策が分かりません。
ご存知の方がいらっしゃればご教授願います。
bash
1金 6/ 1 2土 6/ 2 3日 6/ 3 4月 6/ 4 5火 6/ 5 6水 6/ 6 7木 6/ 7 8金 6/ 8 9土 6/ 9 10 11 12(残り20日分の改行のみされています) 13 14 15fin
該当のソースコード
python
1from selenium import webdriver 2from selenium.webdriver.chrome.options import Options 3 4options = Options() 5options.add_argument('--headless') 6browser = webdriver.Chrome(chrome_options=options) 7browser.implicitly_wait(3) 8url_user = "https://xxxxxxxxxxx" 9browser.get(url_user) 10for i in range(31): 11 # 2列目の「日にち」text取得 12 xpath = "//*[@id='dataRow-%d']/td[2]" % (i+1) 13 day = browser.find_element_by_xpath(xpath).text 14 # 3列目の「曜日」text取得 15 xpath = "//*[@id='dataRow-%d']/td[3]" % (i+1) 16 week = browser.find_element_by_xpath(xpath).text; 17 # 出力 18 print(week, day) 19 20
やったこと
同じような表があるurlで同スクリプトを動かすと
10行目以降もちゃんと表内のテキストが取得できました。
webスクレイピング対象のHTMLをUpするか、質問者が見直すと気づきが有ると思いますよ。

回答2件
あなたの回答
tips
プレビュー