为什么这个图片下载器不起作用? -- 非常短的 python 脚本 --

问题描述 投票:0回答:1

这是我现在的代码:

import requests
from bs4 import BeautifulSoup
 
def getdata(url):
    r = requests.get(url)
    return r.text
 
htmldata = getdata("https://www.piggyback.com/online-guide/final-fantasy-x/de/")
soup = BeautifulSoup(htmldata, 'html.parser')
for item in soup.find_all('img', class_="ImgBitmap__image___29vcf"):
    print(item['src'])

我猜我做错了什么。如果您需要任何详细信息,请询问。当你这样做时,你能教我如何下载该源吗?意思是下载该网站的所有图像。 :D

python-3.x web-scraping
1个回答
0
投票

问题是页面是从底层 PDF 文档渲染的(因此 看不到任何图像)。

但是,您可以使用

requests
下载 PDF 文件(然后如果需要,您可以将 PDF 文件转换为图像作为下一步):

import re
import requests

url = "https://www.piggyback.com/online-guide/final-fantasy-x/de/"
html_text = requests.get(url).text
pdf_url = re.search(r'url: "([^"]+)', html_text).group(1)

headers = {"Referer": "https://www.piggyback.com/"}

print(f"Downloading {pdf_url} ...")
with open(pdf_url.split("/")[-1], "wb") as f_out:
    f_out.write(requests.get(pdf_url, headers=headers).content)

print("Done ...")

打印:

Downloading https://storage-cdn.piggyback.com/storage/media/online-guide/final-fantasy-x/de/Final_Fantasy_X_Das_offizielle_Loesungsbuch.pdf ...
Done ...

并下载~168MB

Final_Fantasy_X_Das_offizielle_Loesungsbuch.pdf

© www.soinside.com 2019 - 2024. All rights reserved.