end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

selenium for python + ms edge + msedgedriver.exe によるfile download

browser起動時に "download.default_directory" でダウンロード先のdirを指定し、 ダウンロードが完了したら、普通?に file openしてください

#!python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service


CONF={
    "browser": { # https://docs.microsoft.com/ja-jp/microsoft-edge/webdriver-chromium/
        "browser_driver": ".\\msedgedriver.exe",
        "implicitly_wait": 10,
        "browser_options" : [
            #"headless",
        ],
        "prefs": {
            "download.default_directory": "c:\\Users\\xcendou\\local\\MONITOR_WORK\\TMP"
        }
    },
}


def main():
    browser = init_browser()
    # TODO


def init_browser():
    browser_service = Service(
        executable_path=CONF["browser"]["browser_driver"] )
    
    browser_opts = Options()
    for tmp_opt in CONF["browser"]["browser_options"]:
        browser_opts.add_argument( tmp_opt )

    # file download先のdir 指定                            
    browser_opts.experimental_options["prefs"]=CONF["browser"]["prefs"]

    browser = webdriver.Edge(service = browser_service,
                             options = browser_opts )
    # 要素が見つかるまで、最大 ?秒 待つ
    browser.implicitly_wait( CONF["browser"]["implicitly_wait"] )
    return browser

if __name__ == '__main__':
    main()