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

使用请求时损坏的pdf(python)

谭山
2023-03-14

我试图从一个网站下载所有pdf文件,但创建的每个pdf都已损坏。。。

import requests 
from bs4 import BeautifulSoup
url ="https://www.geeksforgeeks.org/how-to-extract-pdf-tables-in-python/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = soup.find_all('a')
i = 0

for link in links:
    if('.pdf' in link.get('href', [])):
        i += 1
        print("Downloading file: ", i)
        
        response = requests.get(link.get('href'))
        
        pdf = open("pdf"+str(i)+".pdf", 'wb')
        pdf.write(response.content)
        pdf.close()
        print("File ", i, " downloaded")
print("All PDF files downloaded")

共有1个答案

晋承嗣
2023-03-14

添加标头到您的请求

import requests 
headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_8_7 rv:5.0; en-US) AppleWebKit/533.31.5 (KHTML, like Gecko) Version/4.0 Safari/533.31.5',
}
from bs4 import BeautifulSoup
url ="https://www.geeksforgeeks.org/how-to-extract-pdf-tables-in-python/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = soup.find_all('a')
i = 0

for link in links:
    if('.pdf' in link.get('href', [])):
        i += 1
        print("Downloading file: ", i)
        
        response = requests.get(link.get('href'), headers=headers)
        
        pdf = open("pdf"+str(i)+".pdf", 'wb')
        pdf.write(response.content)
        pdf.close()
        print("File ", i, " downloaded")
print("All PDF files downloaded")
 类似资料:
  • 朋友们,这是我在这里的第一个问题。。。我在使用MS2XML下载PDF缓冲区时遇到了一些问题。XMLHTTP。我一直在使用Genexus这样做,但我也尝试了纯视觉福克斯专业版。问题是,当我将ResponseText发送到字符串变量时,一些字符被问号替换,sam发生在我将ResponseText发送到pdf或txt文件时。在MS2XML中创建的对象。XMLHTTP。6.0不允许使用ResponseBy

  • 我试图使用ITextSharp旋转PDF文档中的各个页面。它看起来很有效,因为当我在土坯上打开时,一切看起来都很好。然而,当试图在itextSharp中重新打开时,会抛出各种异常。我可以看出文档出了问题,因为adobe总是问我是否要保存更改时,打开一个与itextSharp操纵的文档,这表明它修复了损坏。 疯狂的是,我甚至不必对文档进行任何操作,只需创建一个新的压模并关闭它。下面是代码,被剥离到仍

  • 我在android和iText上遇到了一些问题,如果有人能帮忙的话。 android应用程序编写多个页面,每个页面包含不同的表。我没有允许一个表跨越一个页面,而是为每个页面添加一个表,并为下一个页面创建一个新表。这样我就可以控制页面总数、页眉和页脚。 我的问题是Android adobe pdf阅读器显示文档很好,正是我正在寻找的。但是,当我在PC上打开一个窗口以访问平板电脑上的 /mnt/sdc

  • SLF4J:未能加载类“org.slf4j.impl.StatibloggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:有关更多细节,请参见http://www.slf4j.org/codes.html#staticloggerbinder。 这里是main

  • 我有一个使用MIP SDK保护PDF的API。目前,它在.NET Framework 4.6.1中运行良好。我正在尝试将相同的代码合并到.NET Core 3.1 API中,但在使用MIP保护PDF之后,我得到了损坏的PDF。跳过保护将导致可以打开的PDF。不确定是否需要一些东西来使MIP在.NET Core中工作?使用Microsoft.InformationProtection。文件1.8.9

  • 目标是实现一个PDF签名过程,在该过程中,服务器(.NET核心服务)根据请求(Electronic)向客户端提供要签名的散列。然后,客户端使用通过PKCS#11接口从智能卡获得的私钥对给定散列进行签名。然后将签名发送回服务器,以便使用iTextSharp将其附加到PDF文件中。 使用node-webcrypto-p11使用智能卡令牌签名哈希的过程目前非常简单(需要进行大量的尝试和错误)。采用的算法