public static void main(String[] args) {
// 根据全国各个高校的地址,获取视频中相应列表的URL和要抓取的值Document document = null;try {document = Jsoup.connect("http://gaokao.chsi.com.cn/sch/search.do?start=0").get();} catch (IOException e) {e.printStackTrace();}Element element = document.body();//System.out.println(element);Elements ths = document.select("th");System.out.println(ths);Elements tds = document.select("td");System.out.println(tds);
}一、简介
该类是位于select包下,直接继承自Object,所有实现的接口有Cloneable, Iterable<Element>, Collection<Element>, List<Element>类声明:public class Elements extends Object implements List<Element>, Cloneable可以使用Element.select(String) 方法去得到Elements 对象。
二、构造方法
1、public Elements()  默认构造方法
2、public Elements(int initialCapacity) 指定一个初始容量创建一个Elements对象。
3、public Elements(Collection<Element> elements)  使用已知元素集创建一个Elements对象。
4、public Elements(List<Element> elements)  使用已知元素的List集合创建一个Elements对象。
5、public Elements(Element... elements) 使用已知元素的可变参数列表创建一个Elements对象。
三、方法详细
1、public Elements clone()  克隆
2、public String attr(String attributeKey) 根据键得到第一个匹配的元素(匹配即为有这个属性)。
3、public boolean hasAttr(String attributeKey)   元素集中存在任何一个元素匹配(有这属性)则返回true。
4、public Elements attr(String attributeKey, String attributeValue) 将 所有匹配attributeKey键的元素的值设置为attributeValue。
5、public Elements removeAttr(String attributeKey)  移除元素集中任何一个匹配的元素
6、public Elements addClass(String className)  将className增加到每一个匹配的元素的class属性上。
7、public Elements removeClass(String className)  从每一个匹配的元素上移除该className
8、public Elements toggleClass(String className)   对每一个匹配的元素的class属性上进行反转。(有则移除,没有则新增)。
9、public boolean hasClass(String className)  检测是否有任何一个匹配的元素在class属性有给定的className值。
10、public String val()  得到第一个匹配元素的表单的值。
11、public Elements val(String value)   对每一个匹配的元素设置表单值。
12、public String text()  得到所有匹配元素文本的综合。该方法在某些情况下会得到重复数据。
13、public boolean hasText() 检测是否有文本内容
14、public String html()  得到所有匹配元素的内部html的综合。
15、public String outerHtml()  得到所有匹配元素的外部html的综合。
16、public String toString()  得到所有匹配元素的外部html的综合。
17、public Elements tagName(String tagName)  更新每个匹配元素的tag name.   如想把每个<i>变成<em>,可以这样:doc.select("i").tagName("em");
18、public Elements html(String html)  设置每个匹配元素的内部html。
19、public Elements prepend(String html)   将指定html增加到每个匹配元素的内部html开头。
20、public Elements append(String html)   将指定html增加到每个匹配元素的内部html末尾。
21、public Elements before(String html)   在每个匹配元素的外部html前面插入指定html。
22、public Elements after(String html)   在每个匹配元素的外部html后面插入指定html。
23、public Elements wrap(String html)  用指定html包装每个匹配的元素。
例如,对于这个html:<p><b>This</b> is <b>Jsoup</b></p>,执行这个包装:doc.select("b").wrap("<i></i>")后就变成:<p><i><b>This</b></i> is <i><b>jsoup</b></i></p>
24、public Elements unwrap()   移除匹配的元素但保留他们的内容。示例:<div><font>One</font> <font><a href="/">Two</a></font></div>   执行 doc.select("font").unwrap()   变成:<div>One <a href="/">Two</a></div>
25、public Elements empty()  清空每个匹配元素的内容。示例:<div><p>Hello <b>there</b></p> <p>now</p></div>  执行doc.select("p").empty()  变成<div><p></p> <p></p></div>
26、public Elements remove()  从DOM树中移除匹配的元素。示例:<div><p>Hello</p> <p>there</p> <img /></div>   执行doc.select("p").remove()后 变成<div> <img /></div>
27、public Elements select(String query)  根据query选择器查询匹配的元素集。
28、public Elements not(String query)  移除匹配选择器的元素集   返回过滤后的元素集。
29、public Elements eq(int index)  根据index得到匹配的元素
30、public boolean is(String query)  检测是否有一个元素匹配给定的选择器。
31、public Elements parents()   得到匹配元素集的所有父类元素和祖先元素集
32、public Element first()  得到第一个匹配的元素
33、public Element last()   得到最后一个匹配的元素
34、public Elements traverse(NodeVisitor nodeVisitor)  对被查询的元素执行一次深度优先的遍历。
35、public int size()  元素集的长度。
36、public boolean isEmpty()   检测是否为空
37、public boolean contains(Object o)  检测是否包含指定对象
38、public Iterator<Element> iterator()   得到迭代器对象
39、public Object[] toArray()  将元素集转换为数组
40、public <T> T[] toArray(T[] a)
41、public boolean add(Element element)  新增元素
42、public boolean remove(Object o)  移除指定元素
43、public boolean containsAll(Collection<?> c)  参照java中的List或Collection用法.
44、public boolean addAll(Collection<? extends Element> c)  参照java中的List或Collection用法.
45、public boolean addAll(int index, Collection<? extends Element> c)  参照java中的List或Collection用法.
46、public boolean removeAll(Collection<?> c)     参照java中的List或Collection用法.
47、public boolean retainAll(Collection<?> c)  参照java中的List或Collection用法.
48、public void clear() 清空元素集
49、public Element get(int index)  根据索引得到指定元素
50、public Element set(int index, Element element)  根据索引设置指定元素
51、public void add(int index, Element element) 在指定位置增加元素
52、public Element remove(int index)  移除指定位置的元素
53、public int indexOf(Object o)  得到指定元素的索引(第一次出现的位置)
54、public int lastIndexOf(Object o) 得到指定元素最后一次出现的位置。
55、public ListIterator<Element> listIterator() 具体参照List<Element>
56、public ListIterator<Element> listIterator(int index)  具体参照List<Element>
57、public List<Element> subList(int fromIndex, int toIndex)  根据起始点得到子集
第一种方法解析html,保存文件内容:public void schoolGrab() throws IOException {    // 根据地址,获取网页中相应列表的URL和text()值    Document document = null;    String filePath = "E:/school.txt";    WriteToTxt writeToTxt = new WriteToTxt();    writeToTxt.isExitsFile(filePath);    PrintStream ps = new PrintStream(new FileOutputStream(new File(filePath)));    try {        document = Jsoup.connect("http://gaokao.chsi.com.cn/sch/search.do?start=0") .get();    } catch (IOException e) {        e.printStackTrace();    }    Element element = document.body();    //System.out.println(element);    //Elements ths = document.select("th").removeAttr("th");    Elements ths = document.select("th");    System.out.println(ths.size());    //System.out.println(ths);    Elements tds = document.select("td");    //System.out.println(tds);    //Elements td = doc.getElementsByAttributeValue("class", "nlctd1");//后续有可能用到,留下以备不时之需    //解析html中的标题头 形成javaBean schoolIntroduction    for (Element e : ths) {        //调用写入文件的方法,写入到文件中        String text = e.getElementsByTag("th").text().trim();        ps.print(text);// 往文件里写入字符串        ps.print("\r\t");        System.out.println(text);        /*if ("院校名称".equals(text)) {            //这里可以定位到“提名与责任”的td标签            System.out.println(text);        }*/    }    ps.println();    //解析td标签    int flag = 1;    for(Element e : tds) {        //调用写入文件的方法,写入到文件中        String text = e.getElementsByTag("td").text().trim();        ps.print(text);// 往文件里写入字符串        ps.print("\r\t");        System.out.println(text);        if(flag%8==0){            ps.println();        }        flag ++;        /*if ("院校名称".equals(text)) {            //这里可以定位到“提名与责任”的td标签            System.out.println(text);        }*/    }我发现第二种方法更加方便
//测试代码,追加文件
FileWriter writer = null;
int flag = 1;
try {// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件writer = new FileWriter(filePath, true);for(Element e : tds) {//调用写入文件的方法,写入到文件中String text = e.getElementsByTag("td").text().trim();writer.write(text);writer.write("\r\t");if(flag%8==0){writer.write("\r\n");}flag ++;System.out.println(text);}
} catch (IOException e) {e.printStackTrace();
} finally {try {if(writer != null){writer.close();}} catch (IOException e) {e.printStackTrace();}
}

原文链接:https://www.cnblogs.com/jueyushanlang/p/9105056.html

jsonp中文API:http://www.open-open.com/jsoup/
英文API:https://jsoup.org/apidocs/overview-summary.html

jsoup的Elements Api 使用相关推荐

  1. jsoup的Elements类

    一.简介 该类是位于select包下,直接继承自Object,所有实现的接口有Cloneable, Iterable, Collection, List 类声明:public class Elemen ...

  2. jsoup 的基本使用以及API内容

    Jsoup 获取 Document 的三种方法: 1. 读取取字符串的方式获取 Document,代码如下所示: @Test //获取完整的字符串内容 public void test01() {St ...

  3. java爬取网页内容 简单例子(2)——附jsoup的select用法详解

    [背景] 在上一篇博文 java爬取网页内容 简单例子(1)--使用正则表达式 里面,介绍了如何使用正则表达式去解析网页的内容,虽然该正则表达式比较通用,但繁琐,代码量多,现实中想要想出一条简单的正则 ...

  4. elasticSearch入门到java操作api一套搞定

    目录 写在前面 一.下载地址 二.solr与es比较 三.安装elasticsearch 四.安装可视化界面(hand插件) 使用 五.安装kibana 六.学习es核心概念 七.IK分词器插件 八. ...

  5. Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)

    XML介绍: XML简介: XML,可扩展标记语言,标准通用标记语言的子集. 一种用于标记电子文件使其具有结构性的标记语言. 它可以用来标记数据.定义数据类型 是一种允许用户对自己的标记语言进行定义的 ...

  6. jsoup 获取html中body内容_jsoup实现java抓取网页内容

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

  7. Jsoup解析HTML实例及文档方法详解

    转载自  Jsoup解析HTML实例及文档方法详解 这篇文章主要介绍了Jsoup如何解析一个HTML文档.从文件加载文档.从URL加载Document等方法,对Jsoup常用方法做了详细讲解,最近提供 ...

  8. jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...

    简单介绍一下Jsoup Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于Xpath,jQuery的操 ...

  9. Spring Boot html页面解析之jsoup

    目的 我们要对一个页面进行数据抓取,并导出doc文档 html解析器 jsoup 直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操 ...

最新文章

  1. 开发日记-20190830 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 6
  2. leetcode 448. Find All Numbers Disappeared in an Array
  3. MFC CListCtrl控件基本使用图解
  4. lamp黄金组合apache+mysql+php的安装
  5. 强化学习笔记:Q-learning :temporal difference 方法
  6. 2020 我的C++学习之路 C++PrimerPlus第十章课后习题
  7. 洛谷p2234/BZOJ1588 [HNOI2002]营业额统计
  8. 1039 到底买不买(pat乙级、C++)
  9. linux grep awk head 的使用
  10. (原創) 如何為Blog加上簡體中文(繁體中文)翻譯? (Web) (CSS) (JavaScript)
  11. OGNL中的#、%和$符号
  12. linux命令unzip,linux unzip命令参数及用法详解--linux解压zip文件命令
  13. spss分析方法-因子分析(转载)
  14. 西门子plc cpu228 4路模拟量输入 2路模拟量输出
  15. JavaScript 技术篇 - js读取Excel文档里的内容实例演示,js如何读取excel指定单元格的内容,js将excel的内容转化为json字符串方法
  16. matlab fft freqz,【急】请教 fft、freqz、bode 求相频响应的区别及原因
  17. 写了一个个人资产管理的后台系统
  18. 树莓派简单入门(基本小案例)
  19. ndk命令行编译so库
  20. 2星|《反焦虑思维》:冥想、遛狗、散步、打哈欠等可以缓解焦虑

热门文章

  1. java并发编程第五课 并发锁讲解一
  2. android省电开发之cpu降频
  3. 【Java案例】超市购物
  4. mysql 评价表设计_来聊聊mysql单表评论系统怎么设计
  5. 如何整理网站策划思路
  6. SIP client - SIP Peers
  7. Linux| |Linux下执行各种命令所需要的权限
  8. 新浪微博自动发送微博(一)
  9. 大学暗恋一个女同学四年,毕业半年后,同学告诉我她等了我四年。【转贴】
  10. codeforces7D Palindrome Degree(manacheramp;dp或Hshamp;dp)