Java Jsoup 抓取静态网页

一,简介

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

因为需要我要爬取数据,结果发现单独 jsoup 只能解析静态的html 文件,对于动态的js加载的HTML 无法获取,这就有很大的局限性。但是一般也只是把jsoup 当作一个解析HTML的工具,不用它来爬取数据,如果需要爬取动态数据,则要配合其他 插件去完成(emmm 目前没有接触到 只知道可以用 )

jsoup常用方法解析

emm 我只是简单了解了一下 就不再这里班门弄斧 了

二,获取网站的图片     

1.要想使用jsoup 必须引入jar 包。  

jsoup(一般有版本号).jar (如果找不到资源可以去问万能的度娘 只要你花时间,肯定会找到的)

2.使用  code= Jsoup.connect(url).execute().body(); 获得网站的源码  (url 为你需要的网站地址)

定义一个 Document 对象 doc,使用Jsoup.parse(code) 将url 转换为 Document对象,通过该对象

获取元素:

主要方法:

doc.getElementById("id名“) 一般都是唯一的 所以获取的只有一个元素

doc.getElementsByTagName() 通过标签名获取元素  一种标签在HTML中可以有多个,所以获取到的是多个元素,且返回是以集合的形式返回

doc.getElementsByClassName() 是通过类名来获取元素,同名的类在HTML中也能存在多个,所以获取到的也是多个元素,同样是以集合的形式返回

3.获取图片的地址

一般图片地址都是存储在 img 标签的 src 当作,可以创建一个list 集合 ,将src中的数据读取存储

将获取的img 存储到 Elements 类型的变量当中,通过遍历变量来获取 src:

elements.get(i).attr("src")

4.存储图片 

将获取的地址存储(改为byte数组 ),并在本地保存。

Github代码地址

原文地址:https://www.cnblogs.com/cxy0210/p/12482293.html