java-爬取手机高清壁纸

qurui1997 2020-05-21 原文

java-爬取手机高清壁纸


public
class DownWallpaper extends JFrame implements ActionListener{ private JButton down = null; public DownWallpaper(){ down = new JButton("下载手机壁纸"); down.setFont(new Font("微软雅黑",Font.ITALIC,20)); down.addActionListener(this); this.setResizable(false); this.add(down); this.setTitle("高清壁纸下载"); this.setSize(250, 150); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==down) { try { JOptionPane.showMessageDialog(this, "正在下载请勿关闭主窗体!"); JOptionPane.showMessageDialog(this, "详细信息请查看:https://sj.enterdesk.com/"); JOptionPane.showMessageDialog(this, "下载完成后请到:d:/img下查看"); load("https://sj.enterdesk.com/"); } catch (Exception e1) { e1.printStackTrace(); } } } public static void main(String[] args) { new DownWallpaper(); } /** * 加载链接 * @param urls * @throws Exception */ public static void load(String urls) throws Exception{ Connection connect = Jsoup.connect(urls); Document document = connect.get(); Elements links = document.getElementsByTag("img"); //循环爬取图片 for(Element link : links){ String url = link.attr("src");//下载的url String endWith = url.substring(url.lastIndexOf("."));//文件后缀名 String fileName = link.absUrl("alt").substring(link.absUrl("alt").lastIndexOf("/"));//文件名 download(url,endWith,fileName); } //获取所有的<li> Elements select = document.select("a"); Elements addClass = select.addClass("next_p"); for (Element element : addClass) { if (element.text().equals("下一页")) { //获取超链接 String attr = element.attr("href"); //递归循环下载 load(attr); }else{ continue; } } } /** * 下载图片 * @param url */ public static void download(String url,String endWith,String fileName) throws Exception{ File file = new File("d:/img/"); if (!file.exists()){ file.mkdir(); }else{ file.delete(); file.mkdir(); } URL url2 = new URL(url); InputStream is = url2.openConnection().getInputStream(); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getPath()+fileName+endWith)); byte[] bs = new byte[2048*2048]; while((is.read(bs))!=-1){ bos.write(bs); } bos.flush(); if(is != null) is.close(); if(bos != null) bos.close(); } }

 

发表于
2020-05-21 15:39 
橙-子 
阅读(
评论(
编辑 
收藏

 

版权声明:本文为qurui1997原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qurui1997/p/12931151.html

java-爬取手机高清壁纸的更多相关文章

  1. Java线程池二:线程池原理

    最近精读Netty源码,读到NioEventLoop部分的时候,发现对Java线程&线程池有些概念还有 […]...

  2. 学妹问,学网站开发还是打 ACM?

    聊聊我的选择 大家好,我是鱼皮,前几天看到一位大一计科同学的问题:我想学做 Web 项目,又想学算法搞 ACM […]...

  3. 线程池的使用

    线程池的使用 1、线程池的使用场景 等待返回任务的结果的多步骤的处理场景, 批量并发执行任务,总耗时是单个步骤 […]...

  4. 各种ORA问题

    1.ORA-01790: 表达式必须具有与对应表达式相同的数据类型 (1)首先要先看一下是不是sql中有用到连 […]...

  5. 一文带你快速搞懂动态字符串SDS,面试不再懵逼

    目录 redis源码分析系列文章 前言 API使用 embstr和raw的区别 SDSHdr的定义 SDS具体 […]...

  6. Java 解析json数据

    1.依赖jar包 import org.json.JSONArray; import org.json.JSO […]...

  7. 面试常见算法题:两个有序数组合并和两个无序数组合并

      数组合并在找工作中笔试和面试都是常遇到的问题,实际上这个主要可以分为两大类进行解决。第一类就是这两个数组都 […]...

  8. java foreach记录

    实现原理解释: http://blog.csdn.net/a596620989/article/details […]...

随机推荐

  1. 刑天DDOS攻击器下一版本即将使用NTP放大功能

    刑天DDOS攻击器下一版本即将使用NTP放大功能       在一次无语实验中无意发现NTP方法后的攻击流量相 […]...

  2. div 中的元素居中

    1、里面是inline 例如是文字:在div中加一个span就可以了  设置span样式为:height:32 […]...

  3. Zookeeper学习笔记一之简介

    Zookeeper学习笔记一之简介 2018-08-23 22:29 by 莲池, … 阅读, & […]...

  4. 树莓派入门笔记1-树莓派基本配置 – 夜owl

    介绍初次开箱,安装系统,连接树莓派和基本配置 安装Noobs系统 noobs是适用于新手引导系统,官方建议初始 […]...

  5. 7. 彤哥说netty系列之Java NIO核心组件之Selector

    ——日拱一卒,不期而至! 你好,我是彤哥,本篇是netty系列的第七篇。 简介 上一章我们一起学习了Java […]...

  6. Java第二次大作业 图书管理系统

    Java第二次大作业 图书管理系统 一.功能调查与系统功能框架图 功能调查: 图书馆管理系统中用户有分为普通用 […]...

  7. .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ HelloWorld)–学习笔记

    2.6.3 RabbitMQ — HelloWorld 发送端 接收端 rabbitmq cont […]...

  8. 解决CentOS: Failed to start The Apache HTTP Server.

      使用systemctl status httpd.service命令查看服务状态,发现有报错       […]...

展开目录

目录导航