繁体   English   中英

使用urllib.urlretrieve()保存图像

[英]Save image with urllib.urlretrieve()

我正在尝试通过我的脚本访问以下链接并下载出现的图表。

我在这里使用可接受的响应实现它但是当我尝试打开文件时,出现错误: The file “test.png” could not be opened because it is empty.

这是我的代码段:

import urllib
image_element = driver.find_element_by_id('chartImg')
src = image_element.get_attribute("src")
if src:
    urllib.urlretrieve(str(src), "test.png")

接下来,我尝试进一步调试并将代码更改为

if src:
    a, b = urllib.urlretrieve(str(src), "test.png")
    print a, b.items() 

这给了我以下输出:

test.png
[('date', 'Sat, 19 Nov 2016 01:19:20 GMT'), ('connection', 'Keep-Alive'), ('content-length', '0'), ('server', 'BigIP')]

有谁知道为什么“内容长度”为“ 0”? 我认为这是下载文件为空的原因。

我认为其原因是因为您要抓取的图像不包含扩展名。 例如,如果运行此代码:

src = "http://i.imgur.com/2C7Csq6.png"
urllib.urlretrieve(src, "test.png")

PNG文件有效,并且是完全相同的图像。 我尝试过寻找方法,而不必上传到可以提供扩展的图像共享服务,但没有发现任何东西。 我也尝试过将.png添加到原始src字符串中,但这也不起作用。 我的猜测是这是一个特定于网站的问题。 希望您能找到解决方法,祝您好运!

我找到了解决方法...截图

    image_element = driver.find_element_by_id('chartImg')
    src = image_element.get_attribute("src")
    if src:
        driver.get(src)
        driver.save_screenshot('screen.png')

不知道是否有更好的方法,但这可以完成工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM