首页 > 解决方案 > 如何在java中从google获取特定的图片url

问题描述

我想从谷歌获取第一个结果的图像地址并保存到 Excel 表中。我使用 apache poi 库来阅读 excel 表。我想要根据图像的 src 数据。另一件事是图像中的 src 数据不完整。我们必须双击它来复制整个数据。我尝试了 jsoup 库,但没有得到正确的结果。请建议我进行任何更改。

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("");  
   }  
}
}

标签: javaexcelimagejsoup

解决方案


推荐阅读