1、引入依赖

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version>
</dependency>

2、基本方法

    public static void main(String[] args) throws IOException {//      1、访问urlString url = "";//      2、参数,没有可不写Map<String, String> params = new HashMap<>();
//        params.put("word","壁纸");//      3、请求文档资源—有get和post两种方法,取决于要爬取的数据,爬取html一般使用get即可Document document = Jsoup.connect(url).data(params).get();//        4、选择器—用来选择元素,主要有几种方式/** 1、getElementsByTag  按照标签选择,通常用来选择 h1 ,img标题等元素* 2、getElementsByClass 按照元素的class命名选取* 3、getElementById 按照元素ID* 4.select 复合选择器,最常用的方法—如下*      #nav 选择id为nav的元素*      .container 选择class为 container的元素*      p > img 选择p标签下的所有img标签,如果是p>a>img,则选择不到。层级必须对应*      其余方法详情见官方API  https://jsoup.org/cookbook/extracting-data/attributes-text-html*/Elements elements = document.select("div.post_body > p > img");/**  这里就已经获取到了所有的图片,可以通过attr方法获取标签的属性,获取图片url*  使用工具类写到本地文件夹就行了*/String FilePath = "D://imgDown/";for (int i = 0; i < elements.size() ; i++) {//此方法只有三个参数——URL地址,文件名字(全名,包含路径),超时时间FileUtil.downFile(elements.get(i).attr("src"),FilePath+i+".jpg",5000);}    }

3、工具类代码—lombok看自己想法是否引入,不需要的话,删除掉log相关的打印就行了

import lombok.extern.slf4j.Slf4j;import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;@Slf4j
public class FileUtil {public static boolean downFile(String urlString, String fileName, Integer timeout) {boolean ret = false;File file = new File(fileName);try {if(file.exists()){file.delete();}log.info("开始下载文件");URL url = new URL(urlString);HttpURLConnection con = (HttpURLConnection)url.openConnection();if (timeout != null) {con.setConnectTimeout(timeout);con.setReadTimeout(timeout);}con.connect();int contentLength = con.getContentLength();InputStream is = con.getInputStream();int len;File file2=new File(file.getParent());file2.mkdirs();if(file.isDirectory()){}else{file.createNewFile();//创建文件}OutputStream os = new FileOutputStream(file);while ((len = is.read(bs)) != -1) {os.write(bs, 0, len);}os.close();is.close();if(contentLength != file.length()){file.delete();ret = false;}else{ret = true;}} catch (IOException e) {file.delete();ret = false;}finally {return ret;}}
}

4、补充

一般在爬取网页的过程中,标题都会是h1标签,可以根据标题创建文件夹,这样方便管理

 String title = document.select("h1").text();String FilePath = "D://imgDown/"+title+"/";

部分网站做了请求头校验,在创建连接的时候,需要添加 headers()参数(单个添加用header),以下是比较常见的的数据,还有Token和Authorization等校验(极少数会有cookie校验),具体可以以浏览器抓取到的参数填写。

Map<String, String> headers = new HashMap<String, String>();
//此处Host的值需要按照访问地址填写
header.put("Host", "https://www.163.com");
header.put("User-Agent", "  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0");
header.put("Accept", "  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
header.put("Accept-Language", "zh-cn,zh;q=0.5");
header.put("Accept-Charset", "  GB2312,utf-8;q=0.7,*;q=0.7");
header.put("Connection", "keep-alive");
Document document = Jsoup.connect(url).headers(headers).data(params).get();

Java使用Jsoup爬取网页数据相关推荐

  1. 【java爬虫】jsoup爬取网页数据-搜索算法评测/竞品评测

    百度抽奖概率改4个小时频繁黑屏频繁弹出源码的前端FE T8李森:请云端高level的同学参加会议...对,我级别到了... 666666 业务背景:如何保证搜索算法的好坏?所以有了竞品评测,自己的AP ...

  2. java用jsoup爬网页数据_java使用jsoup爬取网页数据

    1.导入依赖 org.jsoup jsoup 1.11.3 1.解析一个html字符串 示例如下:String html = " 这是P元素的内容 ";Document docum ...

  3. HTTP编程(Java爬虫-简单爬取网页数据)

    HTTP协议简介 HTTP 是 HyperText Transfer Protocol 的缩写,翻译为超文本传输协议,它是基于 TCP 协议之上的一种请求-响应协议. HTTP请求格式是固定的,由HT ...

  4. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  5. java 爬取网页数据 多页爬取 jsoup 和 httpClient 实现

    预览结果视图 目录 预览结果视图 介绍 代码 依赖 爬取网页数据代码 解析代码 解析介绍 完整代码 介绍 1.爬取通过org.jsoup 和HttpClients实现 2.爬取多页内容的时候进行循环, ...

  6. Java技术Jsoup爬取数据手动登录

    Java语言爬取网页数据信息,使用jsoup技术.有的需要爬取的数据信息必须要登录之后才能看到的.所以需事先模拟登陆,然后在手拆dom,整理数据.导出数据. ** 1.模拟登陆之手动登录 如果是自动登 ...

  7. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析

    引言 随着时代的发展,我国在各行各业都需要大量的人才引进,处于近几年最热门的行业也称"最火行业":大数据.数据分析.数据挖掘.机器学习.人工智能,这五门行业各有不同又互有穿插.近几 ...

  8. 爬虫系列-jsoup爬取网页你需要了解的一切

    爬虫系列-jsoup爬取网页 概述 解析和遍历文档 文档的对象模型 加载HTML数据 从String解析文档 从String中加载解析片段 从URL加载文档 描述 从文件加载文档 描述 提取数据 使用 ...

  9. pycharm查看html页面,pycharm爬取网页数据

    1 python环境的配置 1.1 安装python文件包,放到可以找到的位置 1.2 右键计算机->属性->高级环境设置->系统变量->Path->编辑->复制p ...

  10. python爬虫爬网站数据登录_使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)...

    urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...

最新文章

  1. P4779 【模板】单源最短路径(标准版)(dijkstra模板)
  2. 人工智能会取代科学家吗
  3. 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
  4. spring webmvc使用ResponseBody前,在配置文件中的配置
  5. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity
  6. 这个冬天,头秃了,口袋也空了......
  7. 安装Visual Studio 2005 SP1时遇到1718错误
  8. 基于Volley框架的图片渐变显示alpha动画
  9. Volatile的实现原理(看这篇就够了)
  10. android boss简历,BOSS简历模板
  11. 学NTFS格式磁盘解析及atapi磁盘读写
  12. 深度学习——人生为数不多的好出路
  13. 【Python中三角函数正弦、余弦、正切的计算】
  14. 工程图字体宋体仿宋_设计干货来了!最热门的宋体字要如何设计搭配?
  15. [BZOJ5276] Skyfall [CF235E] Number Challenge [莫比乌斯反演]
  16. Nginx的重启命令(nginx -s reopen)
  17. Tomcat with muti instance
  18. 微信端权限控制java,微信支付:特约子商户商户号未授权服务商的产品权限 的解决方案...
  19. 达梦数据库DM8同步到KAFKA的部署方法
  20. GetLastError返回值大全(英文最新版)(1000-4000)

热门文章

  1. 通过Cubro解决方案轻松过渡到100Gbit
  2. ffmpeg用法及如何使用fluent-ffmpeg
  3. API设计指南-RestAPI设计最佳实践
  4. 九个帮你提高开发效率的现代CSS框架
  5. 硬件工程师入门和进阶
  6. 电脑BIOS为UEFI BIOS,出现蓝屏情况“你的设备遇到问题,需要重启。我们只收集某些错误信息,然后你可以重新启动。100%完成“,解决方法。
  7. 关于在word中安装Mathtype
  8. 朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招
  9. 用计算机代码模拟基因,一种通过计算机程序模拟产生简化DNA甲基化测序数据的方法与流程...
  10. linux指定行添加内容,Linux sed命令在指定行前后添加内容