Created
July 15, 2020 09:00
-
-
Save kokardy/9a5fe78cfd3447bd278727b04f370718 to your computer and use it in GitHub Desktop.
webmail ダウンローダ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding:utf-8 | |
from selenium import webdriver | |
from selenium.webdriver.chrome.options import Options | |
import sys | |
def download_from_list_page(driver): | |
links = driver.find_elements_by_xpath("//a[contains(@href, '_uid')]") | |
for link in links: | |
url = link.get_attribute("href") | |
driver.execute_script("window.open()") | |
driver.switch_to.window(driver.window_handles[1]) | |
driver.get(url) | |
#ダウンロードボタン 何故か122 | |
driver.find_element_by_id("messagemenulink").click() | |
driver.find_element_by_id("rcmbtn122").click() | |
driver.close() | |
driver.switch_to.window(driver.window_handles[0]) | |
def main(): | |
if len(sys.argv) != 5: | |
print("引数は4つ必要です。", sys.argv[1:]) | |
print("USAGE: get_mail.py username password foldername chromedriver_path") | |
print("chromedriverはここからダウンロード: http://chromedriver.chromium.org/downloads") | |
quit() | |
user, pw, folder_name, chromedriver_path = sys.argv[1:] | |
# ブラウザのオプションを格納する変数をもらってきます。 | |
options = Options() | |
# Headlessモードを有効にする(コメントアウトするとブラウザが実際に立ち上がります) | |
# options.set_headless(False) | |
# ブラウザを起動する | |
#driver = webdriver.Chrome(chrome_options=options) | |
driver = webdriver.Chrome( | |
executable_path=chromedriver_path, | |
#chrome_options=options | |
) | |
# ブラウザでアクセスする | |
url = "https://webmail.********************.jp/" | |
driver.get(url) | |
# 待機時間 | |
driver.implicitly_wait(10) # 秒 | |
#login | |
driver.find_element_by_name("_user").send_keys(user) | |
driver.find_element_by_name("_pass").send_keys(pw) | |
driver.find_element_by_id("rcmloginsubmit").click() | |
print(driver.current_url) | |
#driver.find_element_by_id(chiken_box_id).click() | |
driver.find_element_by_partial_link_text(folder_name).click() | |
#最後のページbtn133 | |
driver.find_element_by_id("rcmbtn133").click() | |
for i in range(5): | |
#listページから一個ずつダウンロード | |
print(driver.current_url, "からダウンロードします" ) | |
download_from_list_page(driver) | |
#前のページbtn131 | |
driver.find_element_by_id("rcmbtn131").click() | |
driver.quit() | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment