Python скачать HREF, получил исходный код вместо PDF-файла - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь загрузить PDF-файл со следующей ссылкой (я изменяю некоторое значение, потому что PDF-файл содержит личную информацию)

https://clients.direct-energie.com/grandcompte/factures/consulter-votre-facture/?tx_defacturation%5BdoId%5D=857AD9348B0007984D4B128F1E8BE&cHash=7b3a9f6d109dde87bd1d95b80ca1d

Когда я пропускаю эту ссылку в моем браузере, файл PDF напрямуюзагрузить, но когда я пытаюсь использовать запрос в моем коде Python, он загружает только исходный код

https://clients.direct-energie.com/grandcompte/factures/consulter-votre-facture/

Вот мой код, я использую селен, чтобы найти ссылку на веб-сайт

fact = driver.find_element_by_xpath(url)
href = fact.get_attribute('href')
print(href)      // href is correct here
reply = get(href, Stream=True)
print(reply)     // I got the source code

Вот html-поиск по селену

<a href="grandcompte/factures/consulter-votre-factue/?tx_defacturation%5BdoId%5D=857AD9348B0007984D4B128F1E8BE&cHash=7b3a9f6d109dde87bd1d95b80ca1d"></a>

Надеюсь, у вас достаточно информации, чтобы помочь, Thx

1 Ответ

0 голосов
/ 29 ноября 2018

Невозможно использовать вашу ссылку, потому что она требует авторизации, поэтому нашел другой пример перенаправления загрузки PDF.Настройка Chrome для загрузки файла PDF вместо его отображения, взятого из этого ответа StackOverflow .

import selenium.webdriver

url = "https://readthedocs.org/projects/selenium-python/downloads/pdf/latest/"

download_dir = 'C:/Dev'
profile = {
    "plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}],
    "download.default_directory": download_dir ,
    "download.extensions_to_open": "applications/pdf"
}

options = selenium.webdriver.ChromeOptions()
options.add_experimental_option("prefs", profile)
driver = selenium.webdriver.Chrome(options=options)

driver.get(url)

При просмотре документов метод driver.get ничего не возвращает, он простоговорит веб-драйверу перейти на страницу.Если вы хотите обработать pdf в Python перед сохранением его в файл, то, возможно, обратите внимание на использование опции Requests или Robobrowser .

Stream=True.для webdriver.Chrome, поэтому не уверен, что этот метод вы использовали, но вышеприведенное должно делать то, что вы хотите.

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