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