Загрузите и сохраните файл PDF с модулем запросов Python

Я пытаюсь загрузить файл PDF с веб-сайта и сохранить его на диск. Мои попытки или перестали работать с кодированием ошибок или результата в пустом PDFs.

In [1]: import requests

In [2]: url = 'http://www.hrecos.org//images/Data/forweb/HRTVBSH.Metadata.pdf'

In [3]: response = requests.get(url)

In [4]: with open('/tmp/metadata.pdf', 'wb') as f:
   ...:     f.write(response.text)
---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-4-4be915a4f032> in <module>()
      1 with open('/tmp/metadata.pdf', 'wb') as f:
----> 2     f.write(response.text)
      3 

UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-14: ordinal not in range(128)

In [5]: import codecs

In [6]: with codecs.open('/tmp/metadata.pdf', 'wb', encoding='utf8') as f:
   ...:     f.write(response.text)
   ...: 

Я знаю, что это - проблема кодека некоторого вида, но я, может казаться, не заставляю это работать.

60
задан 29 December 2015 в 05:17

1 ответ

Обратите внимание, что я - новичок. Если Мое решение неверно, не стесняйтесь исправлять и/или сообщать мне. Я могу изучить что-то новое также.

Мое решение:

Изменение downloadPath соответственно туда, где Вы хотите, чтобы Ваш файл был сохранен. Не стесняйтесь использовать полный путь также для Вашего использования.

Сохраняют ниже как downloadFile.py.

Использование: python downloadFile.py url-of-the-file-to-download new-file-name.extension

Не забывают добавлять расширение!

использование В качестве примера: python downloadFile.py http://www.google.co.uk google.html

import requests
import sys
import os

def downloadFile(url, fileName):
    with open(fileName, "wb") as file:
        response = requests.get(url)
        file.write(response.content)


scriptPath = sys.path[0]
downloadPath = os.path.join(scriptPath, '../Downloads/')
url = sys.argv[1]
fileName = sys.argv[2]      
print('path of the script: ' + scriptPath)
print('downloading file to: ' + downloadPath)
downloadFile(url, downloadPath + fileName)
print('file downloaded...')
print('exiting program...')
0
ответ дан 1 November 2019 в 10:01

Другие вопросы по тегам:

Похожие вопросы: