当前位置: 首页 > 知识库问答 >
问题:

urllib。要求urlretrieve返回损坏的文件(如何处理这种url?)

骆雅昶
2023-03-14

我想从一个网页下载大约1000个pdf文件。然后我遇到了这种笨拙的pdf url格式。两个请求。get()urllib。要求urlretrieve()不适合我。

通常的pdf url如下所示:

https://webpage.com/this_file.pdf

但是这个网址就像:

https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileDownload.do?wrtSn=9000001&fileSn=1&wrtFileTy=01

所以它的url中没有. pdf,如果你点击它,你可以下载它,但是使用pythonurllib,你会得到损坏的文件。

起初我以为它被重定向到了其他的url。所以我使用了请求。get(url,allow\u retrieves=True)选项,结果与之前相同。。

filename = './novel/pdf1.pdf'
url = 'https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileDownload.do?wrtSn=9031938&fileSn=1&wrtFileTy=01'

urllib.request.urlretrieve(url, filename)

此代码下载损坏的pdf文件。

共有1个答案

傅砚
2023-03-14

我使用检索到的对象中的内容字段解决了这个问题。


filename = './novel1/pdf1.pdf'
url = . . .

object = requests.get(url)
with open('./novels/'+filename, 'wb') as f:
    f.write(t.content)

参考本QnA;使用Python请求模块下载并保存PDF文件

 类似资料:
  • 问题内容: 我使用Eclipse在Windows 7中创建了一个jar文件。当我尝试打开jar文件时,它说jar文件无效或损坏。谁能建议我为什么jar文件无效? 问题答案: 当您在Windows资源管理器中双击一个JAR文件时,会发生这种情况,但是JAR本身实际上不是 可执行的 JAR。真正的可执行JAR至少应具有带有方法的类,并在中引用它。 在Eclispe中,您需要将项目导出为 Runnabl

  • 我们在kafka中使用Ktabke进行聚合,它非常基本的用途,并参考了kafka文件。 使用Kafka的Streams API处理坏消息的KStream参考 我的用例非常简单,对于任何类型的异常,只需移到错误主题并移到不同的消息

  • 朋友们,这是我在这里的第一个问题。。。我在使用MS2XML下载PDF缓冲区时遇到了一些问题。XMLHTTP。我一直在使用Genexus这样做,但我也尝试了纯视觉福克斯专业版。问题是,当我将ResponseText发送到字符串变量时,一些字符被问号替换,sam发生在我将ResponseText发送到pdf或txt文件时。在MS2XML中创建的对象。XMLHTTP。6.0不允许使用ResponseBy

  • 问题内容: 我正在使用具有以下签名的类: 我正试图通过其他班级来称呼它: 但是在这里我得到这个错误: 为什么在Class扩展行中将我指定为第三个参数? 问题答案: 您可以通过对返回的AsyncTask调用AsyhncTask的get()方法来获得结果,但是当它等待获取结果时,它将把它从异步任务变成同步任务。 由于您的AsyncTask位于单独的类中,因此您可以创建一个接口类并在AsyncTask中

  • 我正在使用apache poi,我创建了一个HSSF工作簿,并尝试打开一个xlsx文件。但当我用excel打开时,它显示文件已损坏。这是我的密码。