Я пишу программу для автоматической загрузки страницы Википедии в формате PDF с использованием встроенного инструмента.
Мне удалось решить проблему, когда я не смог получить данные с помощью кнопки отправки.Новая проблема заключается в том, что я могу загрузить файл (я использовал open()
, а также urllib.request.urlretrieve()
, но я не могу открыть его вручную. Кажется, что файл поврежден во время загрузки (я думаю, что этоошибка кодирования.) Это отключает открытие PDF-файла .. (неподдерживаемый тип данных или поврежденный файл =
Это код, который я использую:
import requests
import urllib.request
base_url = 'https://de.wikipedia.org/wiki/'
def createURL(base):
title = 'Rektifikation (Verfahrenstechnik)'
name = title.replace(" ", "_")
url = (base + name).replace('(', '%28').replace(')', '%29')
print(url)
getPDF(url, title)
def getPDF(url, title):
r = requests.get(url, allow_redirects=True)
open('{}.pdf'.format(title), 'wb').write(r.content)
urllib.request.urlretrieve('https://de.wikipedia.org/w/index.php?title=Spezial:ElectronPdf&page=Rektifikation+%28Verfahrenstechnik%29&action=show-download-screen)', '{}_vl.pdf'.format(title))
createURL(base_url)
Я жестко закодировал большую часть материала по причинам отладкиНе стесняйтесь помочь мне улучшить код, но учтите, что это не моя основная цель, пожалуйста.
Теперь у меня вопрос: что я могу сделать, чтобы предотвратить повреждение файла (закодируйте егоправильный путь)
Это - ссылка (нажмите кнопку), с которой я пытаюсь скачать. Примечание: Это ссылка для мгновенной загрузки с перенаправлением.
Спасибоесли вам нужна дополнительная информация, просто спросите меня.
РЕДАКТИРОВАТЬ: Открытие PDF через Word позволяет мне видеть, что данные (тексты, абзацы ...) доступны. Таким образом, PDF содержит данныеи сама загрузкакажется успешным.
Размеры загружаемых файлов различаются, может быть, кто-то тоже может посмотреть на эту проблему: open: 58KB urllib: 18KB вручную: 239KB