Скачать PDF с Selenium для Chrome в Python - PullRequest
0 голосов
/ 06 ноября 2019

Я пишу Скрипт для массовой загрузки PDF-файлов в цикле. Firefox на базе Selenium-Webdriver застрял после первой загрузки, поэтому я решил попробовать Chrome.

С Chrome Loop теперь работает. Но я не могу скачать PDF-файлы. Chrome просто показывает их с помощью pdf_viewer.js в окне браузера.

Я пробую разные варианты, такие как plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], download.extensions_to_open": "applications/pdf и plugins.always_open_pdf_externally": True. Ничего не работает

#!/usr/bin/python

downPath = "/home/user/xxx/"

Y = ["2017", "2018", "2019"]

def main():
    options = webdriver.ChromeOptions()
    profile = {
        "plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], 
        "download.default_directory": downPath , 
        "download.extensions_to_open": "applications/pdf",
        "plugins.always_open_pdf_externally": True,
        "download.prompt_for_download": False,
        "safebrowsing.enabled": True
        }
    options.add_experimental_option("prefs", profile)
    browser = webdriver.Chrome(options=options)

    driver = webdriver.Chrome()

    driver.get('login-url')
    #LOGIN-Stuff ... 
    time.sleep(4)

    for y in Y:
        print(y)
        for x in range(53):
            url = "https://j.world/files/{0}/filename_{0}-{1:02d}.pdf".format(y, x)
            print(url)
            driver.get(url)
            time.sleep(4)
    driver.quit()

if __name__ == "__main__":
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import time
    import sys
    import os
    main()

Я использую Python 3.7.4 с python-selenium 3.141.0-1 из Arch-Linux Repository.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Я упустил из виду, что в коде все еще были фрагменты моих попыток с Firefox.

browser = webdriver.Chrome(options=options)

driver = webdriver.Chrome()

, очевидно, неверны

Я написал driver = webdriver.Chrome(options=options) и все работает.

извините за невнимательность

0 голосов
/ 06 ноября 2019

вы можете скачать файл с запросами lib или curl / wget / etc вместо

driver.get(url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...