Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从网站下载书籍_Python_File_Pdf_Download_Python Requests - Fatal编程技术网

使用python从网站下载书籍

使用python从网站下载书籍,python,file,pdf,download,python-requests,Python,File,Pdf,Download,Python Requests,我正在从网站下载书籍,几乎我的代码运行顺利,但当我尝试在PC上打开pdf书籍时。Adobe Acrobat Reader生成错误,认为这是不支持的文件类型 这是这本书的格式图,我确信我的代码需要更正,因为网站上这本书的格式与通常的PDF文件不同 代码: `好吧,我检查了网站上的元素,然后没有找到“.pdf”文件。我们可以使用以下链接查看一个书页: 检查完元素后,我发现不是pdf。这只是页面中的一个图像 等等 因此,您可以编写代码下载此图像。检查答案,这可能会有所帮助。书籍链接不提供p

我正在从网站下载书籍,几乎我的代码运行顺利,但当我尝试在PC上打开pdf书籍时。Adobe Acrobat Reader生成错误,认为这是不支持的文件类型

这是这本书的格式图,我确信我的代码需要更正,因为网站上这本书的格式与通常的PDF文件不同

代码:


`

好吧,我检查了网站上的元素,然后没有找到“.pdf”文件。我们可以使用以下链接查看一个书页:

检查完元素后,我发现不是pdf。这只是页面中的一个图像

等等


因此,您可以编写代码下载此图像。

检查答案,这可能会有所帮助。书籍链接不提供pdf的位置。该链接指向另一个网页,该网页随后通过网页显示存储在服务器上的pdf,因此
book\u response
的值是该书页面的原始html,而不是该书的pdf内容。如果您查看该网站,您会发现没有可以刮取的pdf。它们显示为svgz文件。请看一个例子。您可以尝试使用svglib转换它们。如果在记事本中打开pdf文件,您将看到
拒绝访问
import requests
from bs4 import BeautifulSoup
url = 'https://global.oup.com/education/support-learning-anywhere/key-resources-online/?region=international&utm_campaign=learninganywhere&utm_source=umbraco&utm_medium=display&utm_content=support_learning_key_resources&utm_team=int#Primary'

response = requests.get(url)
soup     = BeautifulSoup(response.content, 'html.parser')
table_data = soup.find_all('td')

books_url_list = []
for link in table_data:
    books_url = link.find('a')['href']
    books_url_list.append(books_url+'.pdf')
    
book = books_url_list[1]
book_response = requests.get(book)

with open('books.pdf', 'wb') as f:
    f.write(book_response.content)