如何在java中从google获取特定的图像url

如何在java中从google获取特定的图像url,java,excel,image,jsoup,Java,Excel,Image,Jsoup,我想从谷歌获得第一个结果的图像地址,并保存到excel表格中。我使用ApachePOI库来阅读excel工作表。 我希望src数据如图所示。另一个问题是图像中的src数据不完整。我们必须双击它来复制整个数据。 我尝试了jsoup库,但没有得到正确的结果。请给我一些零钱 package com.uc.excel; 导入java.io.File; 导入java.io.FileInputStream; 导入java.io.FileNotFoundException; 导入java.io.IOExce

我想从谷歌获得第一个结果的图像地址,并保存到excel表格中。我使用ApachePOI库来阅读excel工作表。 我希望src数据如图所示。另一个问题是图像中的src数据不完整。我们必须双击它来复制整个数据。 我尝试了jsoup库,但没有得到正确的结果。请给我一些零钱

package com.uc.excel;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.util.Iterator;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.FormulaEvaluator;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.xssf.usermodel.xssfheet;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
导入org.jsoup.nodes.Element;
导入org.jsoup.select.Elements;
公共类ReadExcelFileDemo{
公共静态void main(字符串…参数)引发IOException{
最后一个字符串GOOGLE_SEARCH_URL=”https://www.google.com/search?q=";
//https://www.google.co.in/search?q=usa&hl=en&tbm=isch
FileInputStream fis=新的FileInputStream(新文件(“C:\\users\\hvt\\desktop\\country.xlsx”);
XSSF工作簿wb=新XSSF工作簿(fis);
XSSFSheet sheet=wb.getSheetAt(0);//创建一个sheet对象来检索对象
迭代器itr=sheet.Iterator();//迭代excel文件
while(itr.hasNext())
{  
行=itr.next();
迭代器cellIterator=row.cellIterator();//迭代每列
while(cellIterator.hasNext())
{  
Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t\t\t”);
String searchURL=GOOGLE\u SEARCH\u URL+cell.getStringCellValue()+“flag”+“&hl=en&tbm=isch”;
系统输出打印(搜索URL);
Document doc=Jsoup.connect(searchURL.get();
元素链接=文件选择(“img.rg_i Q4LuWd”);
System.out.println(“link2”+link.attr(“src”);
System.out.println(“link2”+link.toString());
}  
System.out.println(“”);
}  
}
}

此类src不包含图像地址。它包含图像本身,存储为使用base64编码的二进制数据。您可以对其进行解码并保存到file.ok,但我需要的是图像的url。就像我们右键点击图片,复制图片地址。
package com.uc.excel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class ReadExcelFileDemo {
   public static void main(String...args) throws IOException {
   final String GOOGLE_SEARCH_URL ="https://www.google.com/search?q=";
   //https://www.google.co.in/search?q=usa&hl=en&tbm=isch
   FileInputStream fis=new FileInputStream(new File("C:\\users\\hvt\\desktop\\country.xlsx"));  
   XSSFWorkbook wb = new XSSFWorkbook(fis);   
   XSSFSheet sheet = wb.getSheetAt(0);     //creating a Sheet object to retrieve object  
   Iterator<Row> itr = sheet.iterator();    //iterating over excel file  
   while (itr.hasNext())                 
   {  
       Row row = itr.next();  
       Iterator<Cell> cellIterator = row.cellIterator();   //iterating over each column  
       while (cellIterator.hasNext())   
       {  
           Cell cell = cellIterator.next();  
           System.out.print(cell.getStringCellValue() + "\t\t\t");
            String searchURL=GOOGLE_SEARCH_URL+cell.getStringCellValue()+" flag"+"&hl=en&tbm=isch"; 
            System.out.print(searchURL);
            Document doc = Jsoup.connect(searchURL).get();
            Elements link = doc.select("img.rg_i Q4LuWd");
            
            System.out.println("link2 " +link.attr("src"));
            System.out.println("link2 " +link.toString());
           

       }  
   System.out.println("");  
   }  
}
}