Android_GitHub_jsoup(一)简介、入门、输入

SourceFrom:https://github.com/jhy/jsoup

SourceFrom:http://www.open-open.com/jsoup/parsing-a-document.htm

截止到今天20160429最新jar包为jsoup-1.9.1.jar,最新版本下载地址如下:

SourceFrom:https://jsoup.org/download


jsoup: Java HTML parser that makes sense of real-world HTML soup.

jsoup:Java HTML解析器,它是有意义的实际HTML汤。

jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.

jsoup是一个Java库来处理实际的HTML。它提供了一个非常方便的API来提取和操纵数据,使用最好的DOM,CSS和jquery-like方法。

jsoup implements the WHATWG HTML5 specification (http://whatwg.org/html), and parses HTML to the same DOM as modern browsers do.

jsoup实现WHATWG HTML5规范(http://whatwg.org/html),并解析HTML DOM一样现代浏览器。

* parse HTML from a URL, file, or string

*从一个URL解析HTML,文件或字符串

* find and extract data, using DOM traversal or CSS selectors

*发现和提取数据,使用DOM遍历或CSS选择器

* manipulate the HTML elements, attributes, and text

*操作HTML元素、属性和文本

* clean user-submitted content against a safe white-list, to prevent XSS

*清洁对安全的白名单用户提交的内容,以防止XSS

* output tidy HTML

*输出HTML整洁

jsoup is designed to deal with all varieties of HTML found in the wild; from pristine and validating, to invalid tag-soup; jsoup will create a sensible parse tree.

jsoup旨在处理所有HTML中发现的野生品种,从原始和验证,无效标签;jsoup将创建一个合理的解析树。

jsoup runs on Java 1.5 and up.

jsoup运行在Java 1.5以上。

See http://jsoup.org/ for downloads and documentation.

请参阅http://jsoup.org/下载和文档



解析和遍历一个HTML文档

如何解析一个HTML文档:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

(更详细内容可查看 解析一个HTML字符串.)

其解析器能够尽最大可能从你提供的HTML文档来创见一个干净的解析结果,无论HTML的格式是否完整。比如它可以处理:

  • 没有关闭的标签 (比如: <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>)
  • 隐式标签 (比如. 它可以自动将 <td>Table data</td>包装成<table><tr><td>?)
  • 创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)

一个文档的对象模型

  • 文档由多个Elements和TextNodes组成 (以及其它辅助nodes:详细可查看:nodes package tree).
  • 其继承结构如下:Document继承Element继承Node.TextNode继承Node.
  • 一个Element包含一个子节点集合,并拥有一个父Element。他们还提供了一个唯一的子元素过滤列表。

解析一个HTML字符串

存在问题

来自用户输入,一个文件或一个网站的HTML字符串,你可能需要对它进行解析并取其内容,或校验其格式是否完整,或想修改它。怎么办?jsonu能够帮你轻松解决这些问题

解决方法

使用静态Jsoup.parse(String html) 方法或Jsoup.parse(String html, String baseUri)示例代码:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

描述

parse(String html, String baseUri) 这方法能够将输入的HTML解析为一个新的文档 (Document),参数 baseUri 是用来将相对 URL 转成绝对URL,并指定从哪个网站获取文档。如这个方法不适用,你可以使用 parse(String html) 方法来解析成HTML字符串如上面的示例。.

只要解析的不是空字符串,就能返回一个结构合理的文档,其中包含(至少) 一个head和一个body元素。

一旦拥有了一个Document,你就可以使用Document中适当的方法或它父类 ElementNode中的方法来取得相关数据。


解析一个body片断

问题

假如你有一个HTML片断 (比如. 一个 div 包含一对 p 标签; 一个不完整的HTML文档) 想对它进行解析。这个HTML片断可以是用户提交的一条评论或在一个CMS页面中编辑body部分。

办法

使用Jsoup.parseBodyFragment(String html)方法.

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

说明

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

Document.body() 方法能够取得文档body元素的所有子元素,与doc.getElementsByTag("body")相同。

保证安全Stay safe

假如你可以让用户输入HTML内容,那么要小心避免跨站脚本攻击。利用基于 Whitelist 的清除器和 clean(String bodyHtml, Whitelist whitelist)方法来清除用户输入的恶意内容。



从一个URL加载一个Document

存在问题

你需要从一个网站获取和解析一个HTML文档,并查找其中的相关数据。你可以使用下面解决方法:

解决方法

使用 Jsoup.connect(String url)方法:

Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();

说明

connect(String url) 方法创建一个新的Connection, 和get() 取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。

Connection 接口还提供一个方法链来解决特殊请求,具体如下:

Document doc = Jsoup.connect("http://example.com")
  .data("query", "Java")
  .userAgent("Mozilla")
  .cookie("auth", "token")
  .timeout(3000)
  .post();
这个方法只支持Web URLs ( httphttps 协议); 假如你需要从一个文件加载,可以使用 parse(File in, String charsetName) 代替。


从一个文件加载一个文档

问题

在本机硬盘上有一个HTML文件,需要对它进行解析从中抽取数据或进行修改。

办法

可以使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法:

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

说明

parse(File in, String charsetName, String baseUri) 这个方法用来加载和解析一个HTML文件。如在加载文件的时候发生错误,将抛出IOException,应作适当处理。

baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。

另外还有一个方法 parse(File in, String charsetName) ,它使用文件的路径做为 baseUri。 这个方法适用于如果被解析文件位于网站的本地文件系统,且相关链接也指向该文件系统。
G
M
T
檢測語言 阿尔巴尼亚语阿拉伯语阿塞拜疆语 爱尔兰语爱沙尼亚语巴斯克语 白俄罗斯语保加利亚语冰岛语 波兰语波斯尼亚语波斯语 布尔语(南非荷兰语)丹麦语德语 俄语法语菲律宾语 芬兰语高棉语格鲁吉亚语 古吉拉特语哈萨克语海地克里奥尔语 韩语豪萨语荷兰语 加利西亚语加泰罗尼亚语捷克语 卡纳达语克罗地亚语拉丁语 拉脱维亚语老挝语立陶宛语 罗马尼亚语马尔加什语马耳他语 马拉地语马拉雅拉姆语马来语 马其顿语毛利语蒙古语 孟加拉语缅甸语苗语 南非祖鲁语尼泊尔语挪威语 旁遮普语葡萄牙语齐切瓦语 日语瑞典语塞尔维亚语 塞索托语僧伽罗语世界语 斯洛伐克语斯洛文尼亚语斯瓦希里语 宿务语索马里语塔吉克语 泰卢固语泰米尔语泰语 土耳其语威尔士语乌尔都语 乌克兰语乌兹别克语希伯来语 希腊语西班牙语匈牙利语 亚美尼亚语伊博语意大利语 意第绪语印地语印尼巽他语 印尼语印尼爪哇语英语 约鲁巴语越南语中文简体 中文繁体
阿尔巴尼亚语 阿拉伯语阿塞拜疆语爱尔兰语 爱沙尼亚语巴斯克语白俄罗斯语 保加利亚语冰岛语波兰语 波斯尼亚语波斯语布尔语(南非荷兰语) 丹麦语德语俄语 法语菲律宾语芬兰语 高棉语格鲁吉亚语古吉拉特语 哈萨克语海地克里奥尔语韩语 豪萨语荷兰语加利西亚语 加泰罗尼亚语捷克语卡纳达语 克罗地亚语拉丁语拉脱维亚语 老挝语立陶宛语罗马尼亚语 马尔加什语马耳他语马拉地语 马拉雅拉姆语马来语马其顿语 毛利语蒙古语孟加拉语 缅甸语苗语南非祖鲁语 尼泊尔语挪威语旁遮普语 葡萄牙语齐切瓦语日语 瑞典语塞尔维亚语塞索托语 僧伽罗语世界语斯洛伐克语 斯洛文尼亚语斯瓦希里语宿务语 索马里语塔吉克语泰卢固语 泰米尔语泰语土耳其语 威尔士语乌尔都语乌克兰语 乌兹别克语希伯来语希腊语 西班牙语匈牙利语亚美尼亚语 伊博语意大利语意第绪语 印地语印尼巽他语印尼语 印尼爪哇语英语约鲁巴语 越南语中文简体中文繁体  
 
語言功能限100個字符
選項 : 歷史 : 幫助 : 反饋 關閉

你可能感兴趣的:(idtransmarksp,idtransmarkspa,idtransmarkspa,idtransmark,anspan,aspan,githspan,库span)