如何使用谷歌API从谷歌图像保存图像? [英] how do save image from google images using google API?

查看:122
本文介绍了如何使用谷歌API从谷歌图像保存图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Google图片中搜索一些不同的图片并使用java Google API保存每个查询的第一个结果。

i'm trying to search in Google-images some different and save the first result for every query with java Google API.

我设法在Google中搜索获取包含搜索结果的json对象。该对象包含包含图像的网站,而不是图像地址

I managed to search in Google and get the json object which contains the search results. the object contains the web sites which contains the images,and not the image address

代码:

URL url = new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
                    "v=1.0&q="+properties.getProperty(Integer.toString(i))+"&userip=IP");
            URLConnection connection = url.openConnection();
            connection.addRequestProperty("Referer", "images.google.com");

        String line;
        StringBuilder builder = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        while((line = reader.readLine()) != null) {
        builder.append(line);
        }

        JSONObject json = new JSONObject(builder.toString())

如果我有图像链接,我也知道如何保存图像。

I'm also know how to save image if i had the image link.

我的问题是如何获得第一个(或第二个或其他)图像正确的地址而不是网址(例如www.yadayadayada.com/image.png)

my problem is how to get the first (or second or whatever) image right address and not the web address (example www.yadayadayada.com/image.png)

10x

推荐答案

JSON界面在 JSON开发人员指南。特别是, JSON参考部分概述了响应格式和保证字段。您可以使用值 url 属性。

JSON interface is described at JSON Developer's Guide. In particular, JSON reference section outlines response format and guaranteed fields. You can use a value of url property.

根据URL,您可以使用 ImageIO 。以下是相关的教程

Given the URL, you can read the image and write it to the disk using ImageIO. Here is the relevant tutorial.

如果不需要图像处理和显示,那么你可以使用 HttpURLConnection 只需下载文件。

If the image manipulation and presentation is not required, then you could use HttpURLConnection to simply download the file.

编辑:示例

以下是基于问题中包含的代码的简单示例。它执行搜索并显示第一个图像。

Below is a simple example based on the code included in the question. It performs a search and displays the first image.

import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class TestImage {

    public static void main(String[] args) {
        try{
            URL url = new URL("https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=Godfather");
            URLConnection connection = url.openConnection();

            String line;
            StringBuilder builder = new StringBuilder();
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            while((line = reader.readLine()) != null) {
                builder.append(line);
            }

            JSONObject json = new JSONObject(builder.toString());
            String imageUrl = json.getJSONObject("responseData").getJSONArray("results").getJSONObject(0).getString("url");

            BufferedImage image = ImageIO.read(new URL(imageUrl));
            JOptionPane.showMessageDialog(null, "", "", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(image));
        } catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage(), "Failure", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
        }
    }
}

这篇关于如何使用谷歌API从谷歌图像保存图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆