03_Jsoup
【1.获取一个页面所有的链接】
public static void main(String[] args) throws IOException {
String url="http://www.cnblogs.com/HigginCui/";
Document doc=Jsoup.connect(url).get(); //下载并解析成html DOM结构
System.out.println(doc); //这里打印就是整个html页面
Elements links=doc.select("a[href]"); //使用select方法选择元素
System.out.println(links.size());
for(Element link:links){
System.err.println("<a href=\""+link.attr("abs:href")+"\"> ("+link.text()+") </a>");
}
}
【运行结果】

【02】
@Test
public void test01(){
String html="<p> "
+ " <a href='http://example.com/'>"
+ " <b>霸气</b>"
+ " </a> "
+ " link."
+ "</p>";
Document doc=Jsoup.parse(html);
Element ele=doc.select("a").first(); //查找第一个a元素 System.out.println("ele.text()==="+ele.text()); //Element.text()获取标签的文本值
System.out.println("ele.attr(\"href\")==="+ele.attr("href"));
String linkOuter=ele.outerHtml();
System.out.println("ele.outerHtml()==="+linkOuter);
}
【运行结果】

【03.根据id获取对应的Element】
@Test
public void test02(){
String html="<p id=\"ppp\" value=\"i am best!\">哈哈哈 </p>";
Document doc=Jsoup.parse(html);
Element ele=doc.select("#ppp").first(); //查找第一个a元素
System.out.println(ele.attr("value"));
System.out.println(ele.text()); }
【运行结果】

【04】
@Test
public void test03(){
String html="<div id=\"zxSale\">"
+ " <table class=\"sssss\">"
+ " <tbody>"
+ " <tr value=\"tttttrrrrr\">"
+ " <td>2017-02-22</td>"
+ " <td> 富国基金</td>"
+ " <td>嘉实基金</td>"
+ " </tr>"
+ " <tr value=\"tttttrrrrr\">"
+ " <td>2017-03-22</td>"
+ " <td>建信基金</td>"
+ " <td>易方达基金</td>"
+ " </tr>"
+ " </tbody>"
+ " </table>"
+ "</div>";
Document doc=Jsoup.parse(html);
Elements trs=doc.select("#zxSale > table > tbody > tr");
for(Element tr:trs){
Elements tds=tr.getElementsByTag("td");
System.out.println(tds.get().ownText());
System.out.println(tds.get().ownText());
System.out.println(tds.get().ownText());
// System.out.println("这个是不存在的:"+tds.get(3).ownText()+"!"); //这里会报错
}
}
【运行结果】

【05】
@Test
public void test03_plus(){
String html="<div id=\"zxSale\">"
+ " <table class=\"sssss\">"
+ " <tbody>"
+ " <tr value=\"tttttrrrrr\">"
+ " <td>2017-02-22</td>"
+ " <td> 富国基金</td>"
+ " <td>嘉实基金</td>"
+ " </tr>"
+ " <tr value=\"tttttrrrrr\">"
+ " <td>2017-03-22</td>"
+ " <td>建信基金</td>"
+ " <td>易方达基金</td>"
+ " </tr>"
+ " </tbody>"
+ " </table>"
+ "</div>";
Document doc=Jsoup.parse(html);
Elements trs=doc.select("#zxSale > table > tbody > tr");
for(Element tr:trs){
Elements tds=tr.getElementsByTag("td"); //根据标签获取元素
for(Element td : tds){
System.out.println(td.text());
}
}
}
【运行结果】

【06】
@Test
public void test04(){
String html="<div id=\"zxSale\">"
+ " <div>"
+ " <select name=\"fundCode\">"
+ " <option value=\"\">全部</option>"
+ " <option value=\"000001\">华夏001</option>"
+ " <option value=\"000002\">华夏002</option>"
+ " <option value=\"000003\">华夏003</option>"
+ " <option value=\"000004\">华夏004</option>"
+ " <option value=\"000005\">华夏005</option>"
+ " <option value=\"000006\">华夏006</option>"
+ " </select>"
+ " </div>"
+ "</div>";
Document doc=Jsoup.parse(html);
Elements options=doc.select("select[name=fundCode]").get().getElementsByTag("option");
if(options.size()>){
for(Element option:options){
System.out.println("value==="+option.attr("value"));
System.out.println("owntext==="+option.ownText());
}
}
}
【运行结果】

03_Jsoup的更多相关文章
随机推荐
- js自定义对象 (转)
原文地址:https://sjolzy.cn/js-custom-object.html 29 March 2010 9:53 Monday by 小屋 javascript进阶之对象篇 一,概述 在 ...
- python学习之路---day25( 网络编程基础和初识socket)
基本网络知识和初识socket一:基本知识 网线:传输电信号 集线器:将所有连接到集线器的网络设备连通起来 交换机: 升级版的集线器 网卡:接受电信号 MAC地址:物理地址: 8C-88-4B-88- ...
- Loj 6432. 「PKUSC2018」真实排名 (组合数)
题面 Loj 题解 枚举每一个点 分两种情况 翻倍or不翻倍 \(1.\)如果这个点\(i\)翻倍, 要保持排名不变,哪些必须翻倍,哪些可以翻倍? 必须翻倍: \(a[i] \leq a[x] < ...
- UVA - 10635 LIS LCS转换
白书例题,元素互不相同通过哈希转换为LIS求LCS #include<iostream> #include<algorithm> #include<cstdio> ...
- aoj0121
一.题意:类似于华容道,输入是8个数字,输入虽然是一行,但实际是以两行的方式操作的.0表示空位,别的相邻数字可移动到该位置上.求最少移动步骤得到指定的状态. 二.思路:这题可以用BFS来解决.因为在每 ...
- Mysql5.7不区分大小写设置
1.编辑mysql配置文件my.cnf 2.在[mysqld]下添加一行 lower_case_table_names=1#0表示区分大小写,1表示不区分大小写
- git和svn有什么区别
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果 ...
- mysql GPID学习
1.为什么引入GPID? 解决主备复制的延时问题 单线程太慢, 多线程复制的问题是:最终数据可能不一致 MySQL主从延时这么长,要怎么优化? 2. 引入后有哪些缺点 不支持create table ...
- nginx 反向代理导致的session丢失的问题
[原文链接] https://blog.csdn.net/xiaweiyidengzhewo/article/details/80921750 注意这篇文章解释的是“丢失”而不是“一致性”
- 《The Python Tutorial》——Errors and Exceptions 阅读笔记
Errors and Exceptions 官方文档:https://docs.python.org/3.5/tutorial/errors.html python中所有的异常都继承自BaseExce ...