【问题标题】:Python 2.7 download imagesPython 2.7 下载图片
【发布时间】:2015-08-10 01:30:37
【问题描述】:

我使用的是 python 2.7,pycharm 是我的编辑器。我想要做的是让 python 访问一个站点并从该站点下载图像并将其保存到我的目录中。目前我没有错误,但我认为它没有下载,因为文件没有显示在我的目录中。

import random
import urllib2

def download_web_image(url):
    name = random.randrange(1,1000)
    full_name = str(name) + ".jpg"
    urllib2.Request(url, full_name)

download_web_image("www.example.com/page1/picture.jpg")

【问题讨论】:

标签: python python-2.7 python-requests


【解决方案1】:

这样就可以了。其余的可以保持不变,只需编辑您的函数以包含我添加的两行。

def download_web_image(url):
    name = random.randrange(1,1000)
    full_name = str(name) + ".jpg"
    request = urllib2.Request(url)
    img = urllib2.urlopen(request).read()
    with open (full_name, 'w') as f: f.write(img)

编辑 1:

在 cmets 中请求的确切代码。

import urllib2

def download_web_image(url):
    request = urllib2.Request(url)
    img = urllib2.urlopen(request).read()
    with open ('test.jpg', 'w') as f: f.write(img)

download_web_image("http://upload.wikimedia.org/wikipedia/commons/8/8c/JPEG_example_JPG_RIP_025.jpg")

【讨论】:

  • 尝试使用图像here,因为我得到了奇怪的失真。
  • @MalikBrahimi 你是什么意思?对我来说非常好用!
  • 谢谢,这确实可以解决问题。我遇到的一个问题是我的测试图像出现失真和绿色,所以它可能与图像本身有关,我将尝试其他图像以查看它是否有效。
  • @jumpman8947 奇怪,它对我有用,看起来应该。只是为了确认一下,棕色的叶子,灰色的石头,左上方和右下方的一点绿草。
  • @Felix_Sim 它仍然是扭曲的,两个代码块。
【解决方案2】:

您只是在创建一个Request,但您没有下载图像。请尝试以下方法:

urllib.urlretrieve(url, os.path.join(os.getcwd(), full_name)) # download and save image

【讨论】:

  • 我使用的是 python 2.7,所以我必须使用 urllib2
  • urllib 包含在两个版本的 Python 中。事实上,我使用的是 2.7。
【解决方案3】:

或者试试 requests 库:

import requests

image = requests.get("www.example.com/page1/picture.jpg")
with open('picture.jpg', 'wb') as f:
    f.write(image.content)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2019-07-24
    相关资源
    最近更新 更多