Jsoup爬虫工具实现背景图片爬取

本文介绍使用Jsoup这款Java HTML解析器爬取指定网站的壁纸图片。通过连接目标网址并利用DOM、CSS选择器和类似jQuery的方法定位图片链接,进而下载图片到本地。文中详细展示了从获取类别页面到最终下载图片的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jsoup爬虫工具实现背景图片爬取

soup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

复制代码之前准备工作

首先要将需要的jar包复制到WEB-INF>>lib下面
需要下载的Jsoup.jar包以及其使用的具体操作文档下载地址 [点击下载]

代码块

亲测:1366x768大小的可以下载三千多张壁纸,具体需要下载多大的,提供了选择 自己选择。具体

package com.test.test;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.UUID;

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

public class Frametest {
     public static void main(String[] args) throws IOException {
        Document firstPage =Jsoup.connect("http://desk.zol.com.cn").get();
        Elements fenleiUrl=firstPage.select("div.wrapper>div.main>dl.first>dd.brand-sel-box>a");
    //System.out.println(fenleiUrl);
    for(int i=1;i<fenleiUrl.size();i++){
        String fenleiUrlS="http://desk.zol.com.cn"+fenleiUrl.get(i).attr("href");
        Document fenleiPage =Jsoup.connect(fenleiUrlS).get();
        Elements  fel=fenleiPage.select("ul.pic-list2>li.photo-list-padding>a");//每个分类对应的标签
        System.err.println(fenleiUrlS);
        //System.out.println(fel);
        for(int j=0;j<fel.size();j++){
            String fenleihou="http://desk.zol.com.cn"+fel.get(j).attr("href");
            System.out.println(fenleihou);
            Document doc=Jsoup.connect(fenleihou).get();
            Elements a=doc.select("div.wrapper>div.photo-set-list>div.photo-list-inner>div.photo-list-box>ul>li>a[href]");
            for(int k=0;k<a.size();k++){
            String  aUrl=a.get(k).attr("href");
            //System.out.println(aUrl);
            Document doc2=Jsoup.connect("http://desk.zol.com.cn"+aUrl).get();

            try {
                Element imgUrl=doc2.getElementById("1366x768");//自行选择壁纸大小 :1440x900 1366x768 1280x1024 1280x800 1024x768
                String imgUrlDown=imgUrl.attr("href");
                Document doc3=Jsoup.connect("http://desk.zol.com.cn"+imgUrlDown).get();
                String imgLastUrl=doc3.select("img").get(0).attr("src");
                System.err.println(imgLastUrl);
                //根据String形式创建一个URL对象,
                   URL url = new URL(imgLastUrl);
                   //实列一个URLconnection对象,用来读取和写入此 URL 引用的资源
                   URLConnection con = url.openConnection();
                   //获取一个输入流
                   InputStream is = con.getInputStream();
                   //实列一个输出对象
                   String filename="f:/img/"+UUID.randomUUID().toString()+".jpg";//图片保存的路径以及图片名字,名字及用UUID生成
                   FileOutputStream fos = new FileOutputStream(filename);
                   //一个byte[]数组,一次读取多个字节
                   byte[] bt = new byte[200];
                   //用来接收每次读取的字节个数
                   int b = 0;

                   //循环判断,如果读取的个数b为空了,则is.read()方法返回-1,具体请参考InputStream的read();
                   while ((b = is.read(bt)) != -1) {
                    //将对象写入到对应的文件中
                    fos.write(bt, 0, b);   
                   }
                   //刷新流
                   fos.flush();
                   //关闭流
                   fos.close();
                   is.close();
            } catch (Exception e) {
                System.err.println("图片路径不可以");
              }
            }

        }
    }
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值