我试图刮一些图像从网站,他们中的大多数保存正确。但是,我有一个图像正在保存没有文件扩展名和文件属性说,它的大小是0字节和大小在磁盘上是288 KB。它加载一个空白图像,如果我手动添加.jpg扩展名,并试图打开它。
我也尝试保持名称不变,并在末尾添加一个数字,如filename-1.jpg或filename-2.jpg,以包含多个图像的项目。但在一些图像上,即使将数字传递给作者,它也会将其砍掉。
当我运行代码时没有错误或崩溃,我不明白为什么相同的代码会产生不同的结果。任何想法或反馈将不胜感激。
我的保存图像函数如下所示:
#dir = 'C:/Users/path'
#name = 'filename.jpg'
#name = 'filename-2.jpg'
#name = 'otherFile.jpg'
#img_url will load the correct image in the browser no issues, and I can right-click and save that image and get the .jpg file no issues.
def save_img(self, img_url, name, dir):
#img_url[-4:] just appends the file extension to the file name
name = self.clean_name(name) + img_url[-4:]
name = name.replace('/', '-')
newImage = dir + "/" + name
if os.path.exists(newImage) == False:
with open(newImage, "wb") as f: #I can check here
f.write(requests.get(img_url).content)
#result 1:
#newImage = 'C:/Users/path/filename.jpg'
#output = 'C:/Users/path/filename' #can't open no data
#result 2:
#newImage = 'C:/Users/path/filename-2.jpg'
#output = 'C:/Users/path/filename' #can't open no data
#result 3:
#newImage = 'C:/Users/path/otherFile.jpg'
#output = 'C:/Users/path/otherFile.jpg' #works just fine
1条答案
按热度按时间5t7ly7z51#
我不知道它是否能解决您的问题,但您可以尝试检查正确的文件扩展名,如果不存在,请附加它。
希望能帮上点忙。
编辑:
我想我找到了一个更好的保存文件的解决方案。您可以使用
我希望现在你可以自由地刮网了:)