【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的更多相关文章

随机推荐

  1. CentOS 中 redis 安装

    第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@hadoop110 桌面]# wget h ...

  2. 利用EFCore 封装Repository(可扩展不同数据的sql操作)

    本篇是对EFCore 进行下封装并实现基本的增删改查的同步异步方法及针对不同数据库的批量插入.sql语句直接操作数据库: 一. 先定义基础仓储接口IRepository public interfac ...

  3. centos下 KeyboardInterrupt 退不出来的结局方法

  4. C++_异常9-异常的注意事项

    一.先讨论异常被引发后,可能导致的问题 意外异常: 如果它是在带异常规范的函数中引发的,则必须与规范列表中的某种异常匹配,否则为意外异常.在默认情况下,这将导致程序异常终止(虽然C++11摒弃了异常规 ...

  5. windows使用putty工具 进行【复制】,【粘贴】操作

    #复制# 按住鼠标左键,执行选择,放开左键时完成复制 #粘贴# 点击鼠标右键,执行粘贴

  6. asp.net boilerplate 配置文件加载

  7. 洛谷 P4859 && BZOJ3622: 已经没有什么好害怕的了

    题目描述 给出 \(n\) 个数 \(a_i\)​ ,以及 \(n\) 个数 \(b_i\)​ ,要求两两配对使得 \(a>b\) 的对数减去 \(a<b\) 的对数等于 \(k\) . ...

  8. bzoj3196 二逼平衡树 树状数组套线段树

    题目传送门 思路:树状数组套线段树模板题. 什么是树状数组套线段树,普通的树状数组每个点都是一个权值,而这里的树状数组每个点都是一颗权值线段树,我们用前缀差分的方法求得每个区间的各种信息, 其实关键就 ...

  9. 使用Maven运行Java main的3种方式使用Maven运行Java main的3种方式

    maven使用exec插件运行java main方法,以下是3种不同的操作方式. 一.从命令行运行 1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成 ...

  10. Linux 后台运行程序 和切换至前台

    fg 将后台中的命令调至前台继续运行 jobs查看当前有多少在后台运行的命令 ctrl + z可以将一个正在前台执行的命令放到后台,并且暂停