Python“损坏”了已下载的pdf文件

时间:2018-09-13 08:16:39

标签: python encoding python-requests urllib wikipedia

我正在编写一个程序,使用其嵌入式工具自动将Wikipedia页面下载为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)

出于调试原因,我对大多数内容进行了硬编码。请随时帮助我改进代码,但是请注意,这不是我的主要目的。

现在我的问题是:我应该怎么做才能防止文件损坏(以正确的方式对其进行编码)

This是我要从中下载的链接(单击按钮)。 注意:这是带有重定向的即时下载链接。

感谢您的帮助,如果您需要更多信息,请问我。

编辑:通过Word打开PDF,可以看到数据(文本,段落..)可用。因此,PDF包含了数据,下载本身似乎是成功的。

下载文件的大小不同,也许有人也可以看一下这个问题: 打开:58KB urllib:18KB 手动:239KB

0 个答案:

没有答案