如何在java中从google获取特定的图像url
我想从谷歌获得第一个结果的图像地址,并保存到excel表格中。我使用ApachePOI库来阅读excel工作表。 我希望src数据如图所示。另一个问题是图像中的src数据不完整。我们必须双击它来复制整个数据。 我尝试了jsoup库,但没有得到正确的结果。请给我一些零钱如何在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
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("");
}
}
}