我用这个代码片断下载图片:
urllib.request.urlretrieve('https://www.facebook.com/photo/download/?fbid=166644340383715','image_name.jpg')
下载成功,就像其他的图像,但是当我试图打开它,我得到了错误:Unknown file format, empty/damaged file or file not found什么不,当我发生尝试通过浏览器下载确切的图像,然后将URL https://www.facebook.com/photo/download/?fbid=166644340383715复制到地址栏并按回车。文件大小也不同:实际文件大小为14.6 KB,使用urlretrieve创建的文件大小为48 KB。我决定这个问题只与小文件有关,但是用另一个文件< 20 KB尝试并且它成功下载。
我试图从here,即我使用的解决方案类似的问题。即使用代码:
def download_image(url, filename, output_dir_name):
if not os.path.exists(output_dir_name):
os.makedirs(output_dir_name)
conn = urllib.request.urlopen(url)
output = open(os.path.join(output_dir_name, filename), 'wb') # binary flag needed for Windows
output.write(conn.read())
output.close()
用于图像下载,但结果相同(无法打开结果文件)。任何想法如何解决它?