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