之前写过两篇关于Jsoup爬取数据的博客(①Jsoup解析HTML页面数据(又扒到1万+的数据) ② Android之Jsoup解析Html抓包其他网站数据

,但是还是有人看不懂,再次写一个案例,这次注释的非常详细;

先看要抓取的数据图片:

 ZS2`@OG)V~NVGVB3XYM]`]M.png;

下面直接是代码了,代码中注释很详细,相信大家应该能看得懂

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

/**

  • @author zml2015

  • @Time:2016年11月8日 下午9:04:23

  • @version 1.0
    */
    public class CollectPets {
    public static void main(String[] args) {
    try {
    Document html = Jsoup.connect("http://www.qichongwang.com/")
    .timeout(1000000).get();//timeout里面的值我写的大,是怕出现链接超时
    // 所有注释对应着网页查看(检查元素)
    Elements div_content = html.select(".tabCont");// 首先拿到类名为tabCont的div里的所有数据

     	Elements uls = div_content.select("ul");// 然后拿到div中所有的ul标签,由页面可以看到前三个ul标签分别对应着“①狗狗推荐”“②猫猫推荐”“③小宠推荐”
    
     	Element dog = uls.get(0);// ①狗狗推荐
     	Element cat = uls.get(1);// ②猫猫推荐
     	Element otherPets = uls.get(2);// ③小宠推荐
    
     	Elements dog_as = dog.select("a");// 获得狗狗推荐的详情链接
     	Elements dog_imgs = dog.select("img");// 获得狗狗推荐的图片<img>标签
    
     	Elements cat_as = cat.select("a");// 获得猫咪推荐的详情链接
     	Elements cat_imgs = cat.select("img");// 获得猫咪推荐的图片<img>标签
    
     	Elements otherPets_as = otherPets.select("a");// 获得小宠推荐的详情链接
     	Elements otherPets_imgs = otherPets.select("img");// 获得小宠推荐的图片<img>标签
     	for (int i = 0; i < dog_as.size(); i++) {
     		String dog_detail_url = dog_as.attr("href");// 拿到<a>标签中href的值
     		String dog_img = dog_imgs.get(i)
     				.attr("src", dog_imgs.get(i).attr("abs:src"))// ①将<img>标签中的src的相对路径转换为绝对路径
     				.attr("src");// ②然后拿到src的值
    
     		String cat_detail_url = cat_as.attr("href");// 拿到<a>标签中href的值
     		String cat_img = cat_imgs.get(i)
     				.attr("src", cat_imgs.get(i).attr("abs:src"))// ①将<img>标签中的src的相对路径转换为绝对路径
     				.attr("src");// ②然后拿到src的值
    
     		String otherPets_detail_url = otherPets_as.attr("href");// 拿到<a>标签中href的值
     		String otherPets_img = otherPets_imgs.get(i)
     				.attr("src", otherPets_imgs.get(i).attr("abs:src"))// ①将<img>标签中的src的相对路径转换为绝对路径
     				.attr("src");// ②然后拿到src的值
    
     		System.out.println("狗狗推荐的图片地址:" + dog_img);
     		System.out.println("狗狗推荐的详情地址:" + dog_detail_url);
    
     		System.out.println("猫咪推荐的图片地址:" + cat_img);
     		System.out.println("猫咪推荐的详情地址:" + cat_detail_url);
    
     		System.out.println("小宠推荐的图片地址:" + otherPets_img);
     		System.out.println("小宠推荐的详情地址:" + otherPets_detail_url);
     	}
    
     } catch (Exception e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     }
    

    }

}

 

输出结果:

b3tFXa_!!1830641203.jpg

 

Q.E.D.