如何从一个网站抓取高质量的图像?(Python,Selenium)

v8wbuo2f  于 2023-06-28  发布在  Python
关注(0)|答案(2)|浏览(158)

我试图使用一个网络剪贴板,从site获取图像。
然而,我的方法导致质量严重下降。
我正试着从这个site中抓取图像。
我已经尝试下载图像并使用从href标签获得的图像链接。这两种尝试都导致图像质量的显著下降。我现在正在考虑采取截图和裁剪图像,但是,我觉得这将是一个迂回的方式来做到这一点。有没有人知道一个方法来解决质量下降?或者任何有用的库
(编辑)最简单的方法似乎是使用request和web框架的组合来下载图像本身;我可能会继续讨论这个问题,但我会给予它多一点时间来思考。有没有人知道一种不用直接下载就能使用这些图片的方法?

v2g6jxz6

v2g6jxz61#

通过请求手动获取数据并将其写入相同扩展名的文件应该可以工作。

import requests

url = "https://img.ltwebstatic.com/images3_pi/2023/04/22/1682132328cfa167169f129c340da4fc854d5587b4_thumbnail_600x.jpg"
img_data = requests.get(url).content
with open('image.jpg', 'wb') as f:
   f.write(img_data)
jhiyze9q

jhiyze9q2#

以下是如何保存/下载给定产品的所有可用图像。

import requests
from bs4 import BeautifulSoup
from PIL import Image

def save_image(img_url):
    filename = img_url.split('/')[-1]
    img = Image.open(requests.get(img_url, stream=True).raw)
    img.save(f"{filename}")
    print(f"saved image: {filename}\n")

url = "https://us.shein.com/Ditsy-Floral-Print-Knot-Cuff-Blouse-p-14155075-cat-1733.html?src_identifier=fc%3DWomen%60sc%3DCLOTHING%60tc%3D0%60oc%3D0%60ps%3Dtab01navbar05%60jc%3DitemPicking_001121425&src_module=topcat&src_tab_page_id=page_home1687813063116&mallCode=1"
data = requests.get(url).text
soup = BeautifulSoup(data, 'lxml')

images = soup.select_one('div.product-intro__main').select('img')
print(f"https:{images[0].get('src')}")
save_image(f"https:{images[0].get('src')}")

for image in images[1:]:
    print(f"https:{image.get('data-src')}")
    save_image(f"https:{image.get('data-src')}")

输出:

https://img.ltwebstatic.com/images3_pi/2023/04/22/1682132328cfa167169f129c340da4fc854d5587b4_thumbnail_600x.jpg
saved image: 1682132328cfa167169f129c340da4fc854d5587b4_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/16821323962950631a3b7546fcb3f7beea67915bf4_thumbnail_600x.jpg
saved image: 16821323962950631a3b7546fcb3f7beea67915bf4_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/16821323996e9b06f5553e4a23876b767e12051b7a_thumbnail_600x.jpg
saved image: 16821323996e9b06f5553e4a23876b767e12051b7a_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/1682132401e3e59b7a6a6b5fdd1e6b2585313ba4b1_thumbnail_600x.jpg
saved image: 1682132401e3e59b7a6a6b5fdd1e6b2585313ba4b1_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/168213240373037078a11f0977ef94ae97e16ebfe6_thumbnail_600x.jpg
saved image: 168213240373037078a11f0977ef94ae97e16ebfe6_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/1682132408646e8ffe0b156bad84ef44d34c3d4f88_thumbnail_600x.jpg
saved image: 1682132408646e8ffe0b156bad84ef44d34c3d4f88_thumbnail_600x.jpg

https://img.ltwebstatic.com/images3_pi/2023/04/22/1682132410a5bb9b65bc0abe32ec5182c35fa2a640_thumbnail_600x.jpg
saved image: 1682132410a5bb9b65bc0abe32ec5182c35fa2a640_thumbnail_600x.jpg

相关问题