无法找到使用Selenium和Python下载图片的方法。
无法找到使用Selenium和Python下载图片的方法
问题出现的原因:
- 第一种方法中使用了PIL库的Image.fromstring()方法,但该方法在较新的版本中已被移除,因此导致报错。
解决方法:
- 使用第二种方法,通过base64库的decodestring()方法将编码的图片数据解码,并将解码后的数据写入文件保存。
具体代码如下:
from base64 import decodestring with open("foo.png", "wb") as f: f.write(decodestring(imagestr))
但在实际运行过程中,可能会遇到以下问题:
- 报错"SyntaxError: invalid syntax",可能是因为代码中存在语法错误,需要检查代码是否正确。
- 图片保存后为空灰色图片,可能是图片数据不完整或错误导致的。
还可能遇到以下问题:
- 报错"cannot import name 'decodestring' from 'base64'",可能是因为Python版本不兼容或base64库版本不匹配导致的。
使用第二种方法可以解决无法使用Selenium和Python下载图片的问题,但需要注意代码语法和图片数据的完整性。如果遇到其他错误,需要检查Python和库的版本兼容性。
问题出现的原因是无法找到使用Selenium和Python下载图片的方法。
解决方法是使用以下代码:
import io, base64 from PIL import Image # 假设base64_str是不包含'data:image/jpeg;base64,'的字符串值 img = Image.open(io.BytesIO(base64.decodebytes(bytes(base64_str, "utf-8")))) img.save('my-image.jpeg')
这段代码可以压缩图片。如果要保存最高质量的图片,可以使用以下代码:
img.save('test.jpg', quality=100, subsampling=0)
无法使用selenium和python下载图片的原因是没有提供具体的下载方法。解决方法是使用base64解码图片数据,并将其写入文件系统。下面是一个示例代码:
# For both Python 2.7 and Python 3.x import base64 with open("imageToSave.png", "wb") as fh: fh.write(base64.decodebytes(img_data))
这段代码将base64编码的图片数据解码,并将其写入名为"imageToSave.png"的文件中。
如果要指定图片的高度和宽度,可以使用图像处理库(如Pillow、ImageMagik等)来调整图片的大小。
如果需要将图片保存到文件系统中,可以使用以下代码:
my_str_as_bytes = str.encode(my_str)
详细说明请参考[这里](https://stackoverflow.com/a/17500651/8508004)。