• 大小: 369KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Java
  • 标签: java  爬虫  

资源简介

java 实现简单爬虫,爬取图片。 根据爬取页面内容,使用jsoup解析html页面,获取需要的路径,进行循环下载。 博客:https://blog.csdn.net/qq_37902949/article/details/81257065

资源截图

代码片段和文件信息

package com.gx.reptile.util;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
 * 
* @ClassName: ReptileUtil 
* @Description: 图片爬虫 -- 使用jsoup解析html页面,获取需要的路径,进行循环下载
* @author zhoujie 
* @date 2018年7月27日 下午8:26:01 
* @version V1.0
百度
 */
public class ReptileUtil {

//定义路径
static String baseurl = “http://www.netbian.com/“;
static String geturl = “http://www.netbian.com/desk/18321.htm“;
static String filepath = “C:\\Users\\zj\\Desktop\\new\\“;

public static void main(String[] args) {
System.out.println(“初始下载页面:“+geturl);
String html = getHtml(geturl); //html页面内容
List srclists = getImgSrcListFromHtml(html); //图片地址集合
downloadImg(srclists filepath); //下载图片
//获取下一个页面进行下载
List list = getNextPageUrl(html); 
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
String url = list.get(i);
System.out.println(“下一个下载页面:“+url);
String html2 = getHtml(url); //html页面内容
List srclists2 = getImgSrcListFromHtml(html2); //图片地址集合
downloadImg(srclists2 filepath); //下载图片
}
System.out.println(“下载完毕“);
}

/**
 * 
* @title: getHtml 
* @Description: 获取页面内容
* @param @param url
* @param @return  页面内容
* @return String  返回类型 
* @throws
 */
public static String getHtml(String url){
String html = ““;
try {
html = Jsoup.connect(url).execute().body();
} catch (IOException e) {
e.printStackTrace();
}
return html;
}

/**
 * 
* @title: getImgSrcListFromHtml 
* @Description: 获取页面内容图片路径
* @param @param html  页面内容
* @param @return    图片路径数组
* @return ArrayList    返回类型 
* @throws
 */
public static List getImgSrcListFromHtml(String html){
List list = new ArrayList<>();
//解析成html页面
Document document = Jsoup.parse(html);
//获取目标
Elements elements = document.select(“div [class=pic]“).select(“img“);
int len = elements.size();
for (int i = 0; i < len; i++) {
list.add(elements.get(i).attr(“src“));
}
return list;
}

/**
 * 
* @title: getNextPage 
* @Description: 从页面内容中获取下一个页面路径
* @param     页面内容
* @return List  返回页面url数组
* @throws
 */
public static List getNextPageUrl(String html){
List list = new ArrayList<>();
//解析成html页面
Document document = Jsoup.parse(html);
//获取目标
Elements elements = document.select(“div [class=list]“).select(“a“);
for (int i = 0;i String url = baseurl + elements.get(i).attr(“href“);
list.add(url);
}
return list;
}

/**
 * 
* @title: downloadImg 
* @Description: 下载图片 -- 通过获取的流转成

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-07-28 09:05  ReptileDemo\
     文件         848  2018-07-27 20:19  ReptileDemo\.classpath
     文件         911  2018-07-27 20:19  ReptileDemo\.project
     目录           0  2018-07-28 09:05  ReptileDemo\.settings\
     文件         564  2018-07-27 20:19  ReptileDemo\.settings\.jsdtscope
     文件         364  2018-07-27 20:19  ReptileDemo\.settings\org.eclipse.jdt.core.prefs
     文件         492  2018-07-27 20:19  ReptileDemo\.settings\org.eclipse.wst.common.component
     文件         345  2018-07-27 20:19  ReptileDemo\.settings\org.eclipse.wst.common.project.facet.core.xml
     文件          49  2018-07-27 20:19  ReptileDemo\.settings\org.eclipse.wst.jsdt.ui.superType.container
     文件           6  2018-07-27 20:19  ReptileDemo\.settings\org.eclipse.wst.jsdt.ui.superType.name
     文件           0  2018-07-27 20:22  ReptileDemo\readme
     目录           0  2018-07-28 09:05  ReptileDemo\src\
     目录           0  2018-07-28 09:05  ReptileDemo\src\com\
     目录           0  2018-07-28 09:05  ReptileDemo\src\com\gx\
     目录           0  2018-07-28 09:05  ReptileDemo\src\com\gx\reptile\
     目录           0  2018-07-28 09:05  ReptileDemo\src\com\gx\reptile\util\
     文件        5263  2018-07-28 08:46  ReptileDemo\src\com\gx\reptile\util\ReptileUtil.java
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\meta-INF\
     文件          39  2018-07-27 20:19  ReptileDemo\WebRoot\meta-INF\MANIFEST.MF
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\classes\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\classes\com\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\classes\com\gx\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\classes\com\gx\reptile\
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\classes\com\gx\reptile\util\
     文件        5600  2018-07-28 08:46  ReptileDemo\WebRoot\WEB-INF\classes\com\gx\reptile\util\ReptileUtil.class
     目录           0  2018-07-28 09:05  ReptileDemo\WebRoot\WEB-INF\lib\
     文件      395748  2018-07-27 20:34  ReptileDemo\WebRoot\WEB-INF\lib\jsoup-1.11.3.jar
     文件         654  2018-07-27 20:19  ReptileDemo\WebRoot\WEB-INF\web.xml

评论

共有 条评论