【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. [HAOI2011]Problem b BZOJ2301 数学

    题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...

  2. Advanced Data Structures in competitive programming

    1.bit #define isOn(S, j) (S & (1 << j)) #define setBit(S, j) (S |= (1 << j)) #define ...

  3. 用 Koa 提供 Restful service 和查询 MongoDB 的例子

    const path = require('path'); const Koa = require('koa'); const app = new Koa(); const compose = req ...

  4. SPOJ - AMR11

    A Thanks a lot for helping Harry Potter in finding the Sorcerer's Stone of Immortality in October. D ...

  5. 获得Windows系统的远程桌面连接历史记录

    转载:http://www.mottoin.com/tech/109219.html 渗透技巧—获得Windows系统的远程桌面连接历史记录 0x00 前言 在渗透测试中,远程桌面连接的历史记录不可忽 ...

  6. CentOS(Linux)主机名字前多了 (base),如何取消和添加

    我们知道IDE中有显示或隐藏某个选项/页面的功能,我们想要修改这个参数,一般都会到设置(settings)中去找.那么与之对应的,Linux上这个终端对应的设置也应该找设置文件. Terminal对应 ...

  7. CSAPP阅读笔记-32位64位的区别--来自第三章引言的笔记--P110

    仅从寻址上看,32位和64位机器能寻址的内存空间大小不同. 需要知道的是,计算机系统对存储器作了抽象,程序“认为”内存是一个很大的字节数组,然而实际上它是由多个硬件存储器和操作系统组合起来实现的. 程 ...

  8. js动态给textarea赋值

    document.getElementById("new_analysed_news").value=datas.weatherContent;

  9. Fragment、Activity比较——Android碎片介绍

    Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法.Fragmen ...

  10. 图解CSS的padding,margin,border属性(详细介绍及举例说明)

    图解CSS的padding,margin,border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...