【问题标题】:How to download an image from the internet using google colab jupyter如何使用 google colab jupyter 从互联网下载图像
【发布时间】:2020-11-08 11:37:14
【问题描述】:

我需要使用 url 下载图像。我设法获得了我需要下载的图像的网址,但现在我不知道如何将它下载到我的本地计算机上。我正在使用谷歌 colab/jupyter。谢谢! 到目前为止,这是我的代码:

from bs4 import BeautifulSoup
import requests
import json
import urllib.request

#use Globe API to get data

#input userid - plan: have program read userids from csv or excel file
userid = xxxxxxxx

#use Globe API to get data
source = requests.get('https://api.globe.gov/search/v1/measurement/protocol/measureddate/userid/?protocols=land_covers&startdate=2020-05-04&enddate=2020-07-16&userid=' + str(userid) +'&geojson=FALSE&sample=FALSE').text
#set up BeautifulSoup4
soup = BeautifulSoup(source, 'lxml')

#Isolate the Json data and put it into a string called "paragraph"
body = soup.find('body')
paragraph = body.p.text

#load the string into a python object
data = json.loads(paragraph)

#pick out the needed information and store them
for landcover in data['results']:
  siteId = landcover['siteId']
  measuredDate = landcover['measuredDate']
  latitude = landcover['latitude']
  longitude = landcover['longitude']
  protocol = landcover['protocol']
  DownURL = landcover['data']['landcoversDownwardPhotoUrl']
  #Here is where I want to download the url contained in 'DownURL'

【问题讨论】:

  • 感谢您的链接。不幸的是,我已经尝试过使用该功能,但它不起作用,因为我想使用它的 url 下载图像,这与下载在 colab 中创建的文件不同。我还是一个初学者,所以我可能会误解一些东西
  • 是的,您能够做到这一点的唯一方法是将文件保存在 colab 中,然后使用该函数。否则我只会在本地运行代码,而不是在 colab 中直接下载。
  • 感谢您的建议!在 colab 中保存图像会是什么样子?有哪些功能?
  • 应该是类似 imwrite 的东西,但我会四处寻找一个功能来保存适合你的图像

标签: python-3.x image download jupyter-notebook google-colaboratory


【解决方案1】:

试试

from google.colab import files as FILE
import os

img_data = requests.get(DownURL).content
with open('image_name.jpg', 'wb') as handler:
    handler.write(img_data)

FILE.download('image_name.jpg')
os.remove('image_name.jpg') # to save up space

您可以调用随机函数,以防您不希望设置图像名称或在每次循环迭代时保持增量的计数器变量。

【讨论】:

  • 非常感谢!该代码有效,但由于某种原因,我丢失了一半的图像。是因为它们是一次性下载的吗?
  • 如果你跟踪程序会更好。您可以创建一个日志来存储获取的 URL、获取的图像数量和下载的图像数量。无论您在哪里发现不匹配,请尝试追踪每一步。此外,您可以确保尝试除块,以便您可以捕获异常,以防您错过任何图像。 (注意:我假设您是按顺序逐个处理,而不是先处理所有 URL,然后是图像,然后下载)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
相关资源
最近更新 更多