Jsoup使用教程

摘要:
如果使用普通的Jsoup解析方法,通常可以得到相同的结果,但用户输入被明确地视为正文片段,以确保用户提供的任何错误HTML都会被解析为正文元素。

一、解析和遍历一个HTML文档
1、解析Html及Url链接

1 String html = "<html><head><title>First parse</title></head>"
2   + "<body><p>Parsed HTML into a doc.</p></body></html>";
3 Document doc = Jsoup.parse(html);//解析html文档
1 Document doc = Jsoup.connect("http://example.com/").get();//解析Url链接地址
2 String title = doc.title();

2、解析body片段

1 String html = "<div><p>Lorem ipsum.</p>";
2 Document doc =Jsoup.parseBodyFragment(html);
3 Element body = doc.body();

parseBodyFragment 方法创建一个空壳的文档,并插入解析过的HTML到body元素中。假如你使用正常的 Jsoup.parse(String html) 方法,通常你也可以得到相同的结果,但是明确将用户输入作为 body片段处理,以确保用户所提供的任何糟糕的HTML都将被解析成body元素。
Document.body() 方法能够取得文档body元素的所有子元素,与 doc.getElementsByTag("body")相同

3、使用Dom获取元素

查找元素

4、从元素抽取属性,文本和HTML

1 String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
2 Document doc = Jsoup.parse(html);//解析HTML字符串返回一个Document实现
3 Element link = doc.select("a").first();//查找第一个a元素
4 
5 String text = doc.body().text(); //"An example link"//取得字符串中的文本
6 String linkHref = link.attr("href"); //"http://example.com/"//取得链接地址
7 String linkText = link.text(); //"example""//取得链接地址中的文本
8 
9 String linkOuterH =link.outerHtml(); 
10     //"<a href="http://t.zoukankan.com/http://example.com"><b>example</b></a>"
11 String linkInnerH = link.html(); //"<b>example</b>"//取得链接内的html内容

二、与百度链接在一起

如何设置百度搜索结果显示更多条数
【必备参数】:

wd——查询的关键词(Keyword)

pn——显示结果的页数(PageNumber)

cl——搜索类型(Class),cl=3为网页搜索

【可选参数】:

rn——搜索结果显示条数(RecordNumber),取值范围在10--100条之间,缺省设置rn=10

免责声明:文章转载自《Jsoup使用教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇设置el-tooltip的宽度pandas如何处理跳过表头操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spark读写hbase性能对比

一、spark写入hbase    hbase client以put方式封装数据,并支持逐条或批量插入。spark中内置saveAsHadoopDataset和saveAsNewAPIHadoopDataset两种方式写入hbase。为此,将同样的数据插入其中对比性能。依赖如下: <!-- https://mvnrepository.com/art...

WinRAR(WinZip)压缩与解压实现(C#版Window平台)

  本文的原理是借助Windows平台安装的WinRAR(WinZip)实现C#程序的调用(注:WinRAR压缩解压WinZip同样适用)。 先来看WinRAR(WinZip)自身的支持调用命令: 压缩命令:a {0} {1} -r 【{0}:压缩后文件名|{1}:待压缩的文件物理路径】 ex:"a 你妹.rar f:\\MM -r" (含义为将f盘下...

SortedList、SortedSet、HashSet、Hashtable、Dictionary、SortedDictionary 排序/可重复排序/过滤重复排序等简单对比

//泛型的键值集合/有序/Hash算法/占内存较大/不排序,不受装填因子的限制,对读写操作效率较高 Dictionary<int, string> dc = new Dictionary<int, string>(); dc.Add(1, "111111");...

RabbitMQ消息确定机制(自动ACK和手动ACK)

原文地址:https://blog.csdn.net/qq_29595463/article/details/109527115 文章目录1. 消息确定机制及其配置2. 自动确认和手动确认细节2.1 测试代码配置2.2 自动确认2.3 手动确认2.3.1 常用API2.3.2 代码案例3. 消息重回队列3.1 默认—消息nack后重回队头3.2 解决方案—...

vo中对date格式的时间格式的处理,方便到前台展示

之前一个同事的写法是这样的(绿色的): public static final String GENERAL_PATTERN_2 = "yyyy-MM-dd HH:mm:ss"; 其实没必要这样,在vo里面的set方法做个赋值: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:s...

SpringBoot集成redisson分布式锁

原文链接:https://blog.csdn.net/sinat_25295611/article/details/80420086 https://www.cnblogs.com/yangzhilong/p/7605807.html 业务场景:在电商项目中,往往会有这样的一个功能设计,当用户下单后一段时间没有付款,系统就会在超时后关闭该订单。 通常我们会...