Hallo zusammen,
ich versuche seit Tagen mir von einer Website eine Datei automatisch herunterladen. Ich habe schon die verschiedensten Anleitungen versucht. Leider ohne Erfolg. Wenn ich das "-headless" auskommentiere sehe ich das die Website richtig aufgerufen wird. Leider erscheint immer der Download Dialog obwohl ich den MIME Type richtig angegeben habe. Vielleicht habt ihr noch eine Idee.
Geckodriver : 0.29
MIME Type der Datei :
1 2 | file --mime-type file.tar.gz file.tar.gz: application/gzip |
Und hier mein Python Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.common.keys import Keys download_path = '/tmp' firefoxOptions = Options() firefoxOptions.add_argument("-headless") profile = webdriver.FirefoxProfile() profile.set_preference("browser.download.folderList", 2) profile.set_preference("browser.helperApps.alwaysAsk.force", False); profile.set_preference("browser.download.manager.showWhenStarting", False) profile.set_preference("pdfjs.disabled", True); profile.set_preference("browser.download.dir", download_path) profile.set_preference("browser.download.downloadDir", download_path) profile.set_preference("browser.download.defaultFolder", download_path) profile.set_preference("browser.helperApps.neverAsk.openFile", 'application/gzip') profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/gzip') profile.set_preference("browser.download.panel.shown", False); browser = webdriver.Firefox(executable_path="/opt/geckodriver", firefox_profile=profile) browser.get('https://website.com/abcdef/') browser.find_element_by_link_text('file.tar.gz').click() browser.find_element_by_link_text('Herunterladen').click() |
Was allerdings sehr komisch ist, wenn ich das gleiche auf z.b. Nextcloud versuche klappt es ohne Probleme.
1 2 3 4 5 6 | ... profile.set_preference("browser.helperApps.neverAsk.openFile", 'application/gzip,application/zip') profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/gzip,application/zip') ... browser.get('https://nextcloud.com/install/#instructions-server') browser.find_element_by_link_text('Download Nextcloud').click() |