jsoup 的基本使用以及API内容
Jsoup 获取 Document 的三种方法:
1. 读取取字符串的方式获取 Document,代码如下所示:
@Test
//获取完整的字符串内容
public void test01() {String html = "<html> <div> <h1>h1标签</h1> <span>span标签</span> </div> </html>";Document document = Jsoup.parse(html);System.out.println(document);
}@Test
//获取部分的字符串内容
public void test02() {String html = "<html> <div> <h1>h1标签</h1> <span>span标签</span> </div> </html>";Document document = Jsoup.parse(html);//此处就像 JavaScript 的选择器Elements div = document.getElementsByTag("div");System.out.println(div);
}
test01 输出结果如下:
<html> <head></head><body><div> <h1>h1标签</h1> <span>span标签</span> </div> </body>
</html>
test02 输出结果如下:
<div> <h1>h1标签</h1> <span>span标签</span>
</div>
2. 使用 GET 或则 POST 方式获取 Document,代码如下所示:
@Test
//通过 GET 方式获取
public void test03() {Document document;try {//get 请求System.out.println("GET 请求方式获取数据");document = Jsoup.connect("http://bp.shijialeya.top").get();System.out.println(document);System.out.println();} catch (IOException e) {e.printStackTrace();}
}@Test
//通过 POST 方式获取
public void test04() {Document document;try {//POST请求System.out.println("POST 请求方式获取数据");document = Jsoup.connect("http://bp.shijialeya.top").data("username", "jiale") //添加请求数据参数。.userAgent("Mozilla AppleWebKit Chrome Safari Edg") //设置请求用户代理头。.cookie("auth", "token") //设置请求中要发送的 cookie。.timeout(2000) //设置超时时间.post();//更多的 API查看文章末尾 Connection 接口的方法System.out.println(document);} catch (IOException e) {e.printStackTrace();}
}
test03 输出结果如下:
GET 请求方式获取数据
<!doctype html>
<html lang="ZH-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> //省略...
test04 输出结果如下:
POST 请求方式获取数据
<!doctype html>
<html lang="ZH-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> //省略...
3. 在文件中获取 Document,代码如下所示:
在同目录下创建 index.html
<html>
<head><title>hello</title>
</head>
<body>键盘敲烂, 工资过万
</body>
</html>
编写 Java 类
@Test
//通过 File 方式获取
public void test05() {File file = new File("src/main/resources/index.html");Document document = null;try {document = Jsoup.parse(file, "UTF-8");System.out.println(document);} catch (IOException e) {e.printStackTrace();} finally {if (document != null){document.clone();}}
}
test05 输出结果如下:
<html> <head> <title>hello</title> </head> <body>键盘敲烂, 工资过万 </body>
</html>
使用 Document 通过选择器获取 Elements
常用的方法:
- select(String cssQuery):查找与SelectorCSS查询匹配的元素,类似于 JQuery 的选择器。
- getElementById(String id):通过ID查找元素
- getElementsByClass(String className):通过class查找元素
- getElementsByTag(String tagName) 通过指定名称查找元素,并递归地查找这些元素。
- getAllElements():在此元素下找到所有元素。
- firstElementSibling():获取此元素的第一个元素同级
- getElementsByAttributeStarting(String keyPrefix):查找具有以提供的前缀开头的属性名称的元素
- getElementsByAttributeValue(String key, String value): 查找具有具有特定值的属性的元素
- getElementsByAttributeValueContaining(String key, String match):查找具有其值包含匹配字符串的属性的元素
- getElementsByAttributeValueStarting(String key, String valuePrefix):查找具有以值前缀开头的属性的元素
- getElementsByAttributeValueEnding(String key, String valueSuffix):查找具有以值后缀结尾的属性的元素
- getElementsContainingText(String searchText) :查找包含指定字符串的元素
创建一个 index.html 文件,内容如下:
<html>
<head><title>hello页面</title>
</head>
<body><div class="boxClass">class div 盒子</div><div id="boxId">Id div 盒子</div><div><span>div 下的 span 标签</span></div>
</body>
</html>
Java 代码示例:
@Test
//选择器
public void test06() {File file = new File("src/main/resources/index.html");Document document = null;try {document = Jsoup.parse(file, "UTF-8");//select 类似于 JQuery 选择器Elements e1 = document.select("body>div>span"); //<span>div 下的 span 标签</span>System.out.println(e1);//getElementById id 选择器Element e2 = document.getElementById("boxId");System.out.println(e2);//<div id="boxId"> Id div 盒子 </div>//getElementsByClass class 选择器Elements e3 = document.getElementsByClass("boxClass");System.out.println(e3);//<div class="boxClass"> class div 盒子 </div>//getAllElementsElements e4 = document.getElementsByTag("span");System.out.println(e4);//<span>div 下的 span 标签</span>//...} catch (IOException e) {e.printStackTrace();} finally {if (document != null) {document.clone();}}
}
获取 Elements 的内容
常用的方法:
- html():检索元素的内部HTML。
- html(String html):设置此元素的内部HTML。
- text():获取此元素及其所有子元素的组合文本。
- text(String text):设置文档的文本。
Java 代码示例:
@Test
//获取 Elements 的内容
public void test07() {File file = new File("src/main/resources/index.html");Document document = null;try {document = Jsoup.parse(file, "UTF-8");//html:不带参数是获取 html,带参数是设置 htmlString html = document.select("body").html();System.out.println(html);//text:不带参数是获取 text,带参数是设置 textString text = document.select("body").text();System.out.println(text);//class div 盒子 Id div 盒子 div 下的 span 标签} catch (IOException e) {e.printStackTrace();} finally {if (document != null) {document.clone();}}
}
API
下面是 Jsoup 的 API,参考自:jsoup官方文档(Jsoup、Document、Element 、Node、Elements、Connection 接口)
public class org.jsoup.Jsoup 类
extends Object
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
static String | clean(String bodyHtml, String baseUri, Whitelist whitelist) | 通过解析输入HTML并通过允许的标签和属性的白名单对其进行过滤,从不受信任的输入HTML中获得安全的HTML。 |
static String | clean(String bodyHtml, String baseUri, Whitelist whitelist, Document.OutputSettings outputSettings) | 通过解析输入HTML并通过允许的标签和属性的白名单对其进行过滤,从不受信任的输入HTML中获得安全的HTML。 |
static String | clean(String bodyHtml, Whitelist whitelist) | 通过解析输入HTML并通过允许的标签和属性的白名单对其进行过滤,从不受信任的输入HTML中获得安全的HTML。 |
static Connection | connect(String url) | 创建一个新Connection的URL。 |
static boolean | isValid(String bodyHtml, Whitelist whitelist) | 测试输入正文HTML是否仅具有白名单允许的标签和属性。 |
static Document | parse(File in, String charsetName) | 将文件内容解析为HTML。 |
static Document | parse(File in, String charsetName, String baseUri) | 将文件内容解析为HTML。 |
static Document | parse(InputStream in, String charsetName, String baseUri) | 读取输入流,并将其解析为Document。 |
static Document | parse(InputStream in, String charsetName, String baseUri, Parser parser) | 读取输入流,并将其解析为Document。 |
static Document | parse(String html) | 将HTML解析为文档。 |
static Document | parse(String html, String baseUri) | 将HTML解析为文档。 |
static Document | parse(String html, String baseUri, Parser parser) | 使用提供的解析器将HTML解析为文档。 |
static Document | parse(URL url, int timeoutMillis) | 提取一个URL,并将其解析为HTML。 |
static Document | parseBodyFragment(String bodyHtml) | 假设HTML构成HTML的片段,则解析HTML的片段body。 |
static Document | parseBodyFragment(String bodyHtml, String baseUri) | 假设HTML构成HTML的片段,则解析HTML的片段body。 |
public class org.jsoup.nodes.Document 类
extends Element
构造方法
构造方法 | 描述 |
---|---|
Document(String baseUri) | 创建一个新的空文档。 |
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
Element | body() | 文档body元素的访问者。 |
Charset | charset() | 返回此文档中使用的字符集。 |
void | charset(Charset charset) | 设置本文档中使用的字符集。 |
Document | clone() | 创建该节点及其所有子节点的独立的深层副本。 |
Element | createElement(String tagName) | 使用此文档的基本uri创建一个新的Element。 |
static | Document createShell(String baseUri) | 创建一个有效的文档空外壳,适用于向其中添加更多元素。 |
DocumentType | documentType() | 返回此文档的文档类型。 |
Element | head() | 文档head元素的访问者。 |
String | location() | 获取解析此文档的URL。 |
String | nodeName() | 获取此节点的节点名称。 |
Document | normalise() | 规范化文档。 |
String | outerHtml() | 获取此节点的外部HTML。 |
Document.OutputSettings | outputSettings() | 获取文档的当前输出设置。 |
Document | outputSettings(Document.OutputSettings outputSettings) | 设置文档的输出设置。 |
Parser | parser() | 获取用于解析此文档的解析器。 |
Document | parser(Parser parser) | 设置用于创建此文档的解析器。 |
Document.QuirksMode | quirksMode() | |
Document | quirksMode(Document.QuirksMode quirksMode) | |
Element | text(String text) | 设置body本文档的文本。 |
String | title() | 获取文档title元素的字符串内容。 |
void | title(String title) | 设置文档的title元素。 |
boolean | updateMetaCharsetElement() | 返回文档中具有字符集信息的元素是否在通过document .charset(charset)进行更改时被更新。 |
void | updateMetaCharsetElement(boolean update) | 设置当通过document .charset(charset)进行更改时,此文档中具有字符集信息的元素是否被更新。 |
Document 继承了 Element,包含了所有的 Element 的方法! |
public class org.jsoup.nodes.Element 类
extends Node
构造方法
构造方法 | 描述 |
---|---|
Element (String tag) | 创建一个新的独立元素。 |
Element (Tag tag, String baseUri) | 从标签和基本URI创建一个新元素。 |
Element (Tag tag, String baseUri, Attributes attributes) | 创建一个新的独立元素。 |
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
Element | addClass(String className) | 在该元素的class属性中添加一个类名。 |
Element | after(String html) | 将指定的HTML插入到此元素之后的DOM中(如下所示)。 |
Element | after(Node node) | 将指定的节点插入到该节点之后的DOM中(如下所示)。 |
Element | append(String html) | 向此元素添加内部HTML。 |
Element | appendChild(Node child) | 将节点子节点添加到此元素。 |
Element | appendElement(String tagName) | 通过标签名称创建一个新元素,并将其添加为最后一个子元素。 |
Element | appendText(String text) | 创建一个新的TextNode并将其附加到此元素。 |
Element | appendTo(Element parent) | 将此元素添加到提供的父元素中,作为其下一个子元素。 |
Element | attr(String attributeKey, boolean attributeValue) | 在此元素上设置布尔属性值。 |
Element | attr(String attributeKey, String attributeValue) | 在此元素上设置属性值。 |
Attributes | attributes() | 获取元素的所有属性。 |
String | baseUri() | 获取适用于此节点的基本URI。 |
Element | before(String html) | 将指定的HTML插入此元素之前的DOM中(作为前面的同级元素)。 |
Element | before(Node node) | 将指定的节点插入到该节点之前的DOM中(作为先前的同级节点)。 |
Element | child(int index) | 通过从0开始的索引号获取此元素的子元素。 |
int | childNodeSize() | 获取此节点拥有的子节点数。 |
Elements | children() | 获取此元素的子元素。 |
int | childrenSize() | 获取作为元素的该元素的子节点数。 |
String | className() | 获取此元素的“class”属性的文字值,其中可能包含多个类名,以空格分隔。 |
Set<String> | classNames() | 获取所有元素的类名。 |
Element | classNames(Set<String> classNames) | 将元素的class属性设置为提供的类名称。 |
Element | clearAttributes() | 清除(删除)此节点中的所有属性。 |
Element | clone() | 创建该节点及其所有子节点的独立的深层副本。 |
Element | closest(String cssQuery) | 在与指定的CSS查询匹配的父级树中找到最接近的元素。 |
Element | closest(Evaluator evaluator) | 在与指定评估者匹配的父级树中找到最接近的元素。 |
String | cssSelector() | 获取将唯一选择此元素的CSS选择器。 |
String | data() | 获取此元素的组合数据。 |
List<DataNode> | dataNodes() | 获取此元素的子数据节点。 |
Map<String,String> | dataset() | 获取此元素的HTML5自定义数据属性。 |
protected Element | doClone(Node parent) | |
protected void | doSetBaseUri(String baseUri) | 如果此节点跟踪基本URI,则仅为此节点(而不是其后代)设置baseUri。 |
int | elementSiblingIndex() | 获取此元素在其同级元素列表中的列表索引。 |
Element | empty() | 删除元素的所有子节点。 |
protected List<Node> | ensureChildNodes() | |
Element | filter(NodeFilter nodeFilter) | 通过该节点及其后代执行深度优先过滤。 |
Element | firstElementSibling() | 获取此元素的第一个元素同级。 |
Elements | getAllElements() | 在此元素下找到所有元素(包括自我和孩子的孩子)。 |
Element | getElementById(String id) | 通过ID查找元素,包括该元素或在该元素下。 |
Elements | getElementsByAttribute(String key) | 查找具有命名属性集的元素。 |
Elements | getElementsByAttributeStarting(String keyPrefix) | 查找具有以提供的前缀开头的属性名称的元素。 |
Elements | getElementsByAttributeValue(String key, String value) | 查找具有具有特定值的属性的元素。 |
Elements | getElementsByAttributeValueContaining(String key, String match) | 查找具有其值包含匹配字符串的属性的元素。 |
Elements | getElementsByAttributeValueEnding(String key, String valueSuffix) | 查找具有以值后缀结尾的属性的元素。 |
Elements | getElementsByAttributeValueMatching(String key, String regex) | 查找具有其值与提供的正则表达式匹配的属性的元素。 |
Elements | getElementsByAttributeValueMatching(String key, Pattern pattern) | 查找具有其值与提供的正则表达式匹配的属性的元素。 |
Elements | getElementsByAttributeValueNot(String key, String value) | 查找不具有此属性或具有不同值的元素。 |
Elements | getElementsByAttributeValueStarting(String key, String valuePrefix) | 查找具有以值前缀开头的属性的元素。 |
Elements | getElementsByClass(String className) | 查找具有此类的元素,包括该元素或在此元素下。 |
Elements | getElementsByIndexEquals(int index) | 查找其兄弟索引等于提供的索引的元素。 |
Elements | getElementsByIndexGreaterThan(int index) | 查找兄弟索引大于提供的索引的元素。 |
Elements | getElementsByIndexLessThan(int index) | 查找兄弟索引小于提供的索引的元素。 |
Elements | getElementsByTag(String tagName) | 查找具有指定标签名称的元素(包括在该元素下并在此元素下递归)。 |
Elements | getElementsContainingOwnText(String searchText) | 查找直接包含指定字符串的元素。 |
Elements | getElementsContainingText(String searchText) | 查找包含指定字符串的元素。 |
Elements | getElementsMatchingOwnText(String regex) | 查找其文本与提供的正则表达式匹配的元素。 |
Elements | getElementsMatchingOwnText(Pattern pattern) | 查找其文本与提供的正则表达式匹配的元素。 |
Elements | getElementsMatchingText(String regex) | 查找其文本与提供的正则表达式匹配的元素。 |
Elements | getElementsMatchingText(Pattern pattern) | 查找其文本与提供的正则表达式匹配的元素。 |
protected boolean | hasAttributes() | 检查此Node是否具有实际的Attributes对象。 |
boolean | hasClass(String className) | 测试此元素是否具有类。 |
boolean | hasText() | 测试此元素是否具有任何文本内容(不只是空格)。 |
String | html() | 检索元素的内部HTML。 |
Element | html(String html) | 设置此元素的内部HTML。 |
<T extends Appendable> | T html(T appendable) | 将此节点及其子节点写入给定的Appendable。 |
String | id() | 获取id此元素的属性。 |
Element | insertChildren(int index, Collection<? extends Node> children) | 将给定的子节点插入到此元素的指定索引处。 |
Element | insertChildren(int index, Node… children) | 将给定的子节点插入到此元素的指定索引处。 |
boolean | is(String cssQuery) | 检查此元素是否与给定的SelectorCSS查询匹配。 |
boolean | is(Evaluator evaluator) | 检查此元素是否与给定的评估者匹配。 |
boolean | isBlock() | 测试此元素是否为块级元素。 |
Element | lastElementSibling() | 获取此元素的最后一个元素同级 |
Element | nextElementSibling() | 获取此元素的下一个同级元素。 |
Elements | nextElementSiblings() | 获取此元素之后的每个同级元素。 |
String | nodeName() | 获取此节点的节点名称。 |
String | normalName() | 获取此元素标签的标准化名称。 |
String | ownText() | 仅获取此元素拥有的文本;无法获得所有子项的合并文本。 |
Element | parent() | 获取此节点的父节点。 |
Elements | parents() | 获取此元素的父项和祖先,直到文档根目录为止。 |
Element | prepend(String html) | 将内部HTML添加到此元素中。 |
Element | prependChild(Node child) | 在此元素的子元素的开头添加一个节点。 |
Element | prependElement(String tagName) | 通过标签名称创建一个新元素,并将其添加为第一个子元素。 |
Element | prependText(String text) | 创建一个新的TextNode并将其添加到此元素之前。 |
Element | previousElementSibling() | 获取此元素的上一个元素同级。 |
Elements | previousElementSiblings() | 获取此元素之前的每个元素同级。 |
Element | removeAttr(String attributeKey) | 从此节点删除属性。 |
Element | removeClass(String className) | 从该元素的class属性中删除类名称。 |
Element | root() | 获取此节点的根节点;就是它的最高祖先。 |
Elements | select(String cssQuery) | 查找与SelectorCSS查询匹配的元素,并以该元素为起始上下文。 |
Elements | select(Evaluator evaluator) | 查找与提供的评估程序匹配的元素。 |
Element | selectFirst(String cssQuery) | 查找与SelectorCSS查询匹配的第一个元素,并以该元素为起始上下文。 |
Element | selectFirst(Evaluator evaluator) | 查找与提供的Evaluator匹配的第一个元素,以该元素作为起始上下文,或者null如果没有匹配项。 |
Element | shallowClone() | 创建该节点的独立浅副本。 |
Elements | siblingElements() | 获取同级元素。 |
Tag | tag() | 获取此元素的标签。 |
String | tagName() | 获取此元素的标签名称。 |
Element | tagName(String tagName) | 更改此元素的标签。 |
String | text() | 获取此元素及其所有子元素的组合文本。 |
Element | text(String text) | 设置此元素的文本。 |
List<TextNode> | textNodes() | 获取此元素的子文本节点。 |
Element | toggleClass(String className) | 在该元素的class属性上切换类名称:如果存在,将其删除;否则添加它。 |
Element | traverse(NodeVisitor nodeVisitor) | 在该节点及其后代中进行深度优先遍历。 |
String | val() | 获取表单元素的值(输入,文本区域等)。 |
Element | val(String value) | 设置表单元素的值(输入,文本区域等)。 |
String | wholeText() | 获取此元素的所有子元素的(未编码)文本,包括原始元素中存在的所有换行符和空格。 |
Element | wrap(String html) | 将提供的HTML环绕此元素。 |
Element 继承 Node,包含了所有的 Node 的方法! |
public abstract class org.jsoup.nodes.Node 类
extends Object
implements Cloneable
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
String | absUrl(String attributeKey) | 从可能是相对的URL属性获取绝对URL。 |
protected void | addChildren(int index, Node… children) | |
protected void | addChildren(Node… children) | |
Node | after(String html) | 将指定的HTML插入此节点之后的DOM中。 |
Node | after(Node node) | 将指定的节点插入此节点之后的DOM中。 |
String | attr(String attributeKey) | 通过其键获取属性的值。 |
Node | attr(String attributeKey, String attributeValue) | 设置属性(键=值)。 |
abstract Attributes | attributes() | 获取元素的所有属性。 |
abstract String | baseUri() | 获取适用于此节点的基本URI。 |
Node | before(String html) | 将指定的HTML插入此节点之前的DOM中。 |
Node | before(Node node) | 将指定节点插入该节点之前的DOM中。 |
Node | childNode(int index) | 通过基于0的索引获取子节点。 |
List<Node> | childNodes() | 获取此节点的子级。 |
protected Node[] | childNodesAsArray() | |
List<Node> | childNodesCopy() | 返回此节点的子级的深层副本。 |
abstract int | childNodeSize() | 获取此节点拥有的子节点数。 |
Node | clearAttributes() | 清除(删除)此节点中的所有属性。 |
Node | clone() | 创建该节点及其所有子节点的独立的深层副本。 |
protected Node | doClone(Node parent) | |
protected abstract void | doSetBaseUri(String baseUri) | 如果此节点跟踪基本URI,则仅为此节点(而不是其后代)设置baseUri。 |
abstract Node | empty() | 删除该节点的所有子节点。 |
protected abstract List<Node> | ensureChildNodes() | |
boolean | equals(Object o) | 检查此节点是否与另一个节点相同(对象身份测试)。 |
Node | filter(NodeFilter nodeFilter) | 通过该节点及其后代执行深度优先过滤。 |
boolean | hasAttr(String attributeKey) | 测试此元素是否具有属性。 |
protected abstract boolean | hasAttributes() | 检查此Node是否具有实际的Attributes对象。 |
boolean | hasParent() | |
boolean | hasSameValue(Object o) | 检查此节点是否与另一个节点具有相同的内容。 |
<T extends Appendable> T | html(T appendable) | 将此节点及其子节点写入给定的Appendable。 |
protected void | indent(Appendable accum, int depth, Document.OutputSettings out) | |
Node | nextSibling() | 获取此节点的下一个同级。 |
abstract String | nodeName() | 获取此节点的节点名称。 |
String | outerHtml() | 获取此节点的外部HTML。 |
protected void | outerHtml(Appendable accum) | |
Document | ownerDocument() | 获取与此节点关联的文档。 |
Node | parent() | 获取此节点的父节点。 |
Node | parentNode() | 获取此节点的父节点。 |
Node | previousSibling() | 获取此节点的先前同级。 |
void | remove() | 从DOM树中删除(删除)此节点。 |
Node | removeAttr(String attributeKey) | 从此节点删除属性。 |
protected void | removeChild(Node out) | |
protected void | reparentChild(Node child) | |
protected void | replaceChild(Node out, Node in) | |
void | replaceWith(Node in) | 用提供的节点替换DOM中的该节点。 |
Node | root() | 获取此节点的根节点;就是它的最高祖先。 |
void | setBaseUri(String baseUri) | 更新此节点及其所有后代的基本URI。 |
protected void | setParentNode(Node parentNode) | |
protected void | setSiblingIndex(int siblingIndex) | |
Node | shallowClone() | 创建该节点的独立浅副本。 |
int | siblingIndex() | 获取此节点在其节点同级列表中的列表索引。 |
List<Node> | siblingNodes() | 检索此节点的兄弟节点。 |
String | toString() | 获取此节点的外部HTML。 |
Node | traverse(NodeVisitor nodeVisitor) | 在该节点及其后代中进行深度优先遍历。 |
Node | unwrap() | 从DOM中删除此节点,并将其子级上移到该节点的父级中。 |
Node | wrap(String html) | 将提供的HTML环绕此节点。 |
public class org.jsoup.select.Elements 类
extends ArrayList
构造方法
构造方法 | 描述 |
---|---|
Elements() | |
Elements(int initialCapacity) | |
Elements(Collection<Element> elements) | |
Elements(List<Element> elements) | |
Elements(Element… elements) |
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
String | absUrl(String attributeKey) | 从可能是相对的URL属性获取绝对URL。 |
Elements | addClass(String className) | 将类名称添加到每个匹配元素的class属性中。 |
Elements | after(String html) | 在每个匹配元素的外部HTML之后插入提供的HTML。 |
Elements | append(String html) | 将提供的HTML添加到每个匹配元素的内部HTML的末尾。 |
String | attr(String attributeKey) | 从具有该属性的第一个匹配元素中获取一个属性值。 |
Elements | attr(String attributeKey, String attributeValue) | 在所有匹配的元素上设置属性。 |
Elements | before(String html) | 在每个匹配元素的外部HTML之前插入提供的HTML。 |
Elements | clone() | 创建这些元素的深层副本。 |
List<Comment> | comments() | 获取Comment作为所选元素的直接子节点的节点。 |
List<DataNode> | dataNodes() | 获取DataNode作为所选元素的直接子节点的节点。 |
List<String> | eachAttr(String attributeKey) | 获取每个匹配元素的属性值。 |
List<String> | eachText() | 获取每个匹配元素的文本内容。 |
Elements | empty() | 清空(从中删除所有子节点)每个匹配的元素。 |
Elements | eq(int index) | 获取第n个匹配的元素作为Elements对象。 |
Elements | filter(NodeFilter nodeFilter) | 对每个选定元素执行深度优先过滤。 |
Element | first() | 获取第一个匹配的元素。 |
List<FormElement> | forms() | FormElement从所选元素(如果有)中 |
boolean | hasAttr(String attributeKey) | 检查是否有任何匹配的元素定义了此属性。 |
boolean | hasClass(String className) | 确定是否有任何匹配的元素在其class属性中设置了此类名称。 |
boolean | hasText() | 测试是否有任何匹配的Element具有文本内容,而不仅仅是空白。 |
String | html() | 获取所有匹配元素的组合内部HTML。 |
Elements | html(String html) | 设置每个匹配元素的内部HTML。 |
boolean | is(String query) | 测试是否有任何匹配的元素与提供的查询匹配。 |
Element | last() | 获取最后匹配的元素。 |
Elements | next() | 获取此列表中每个元素的直接下一个元素同级。 |
Elements | next(String query) | 获取此列表中每个元素的直接下一个元素同级,由查询过滤。 |
Elements | nextAll() | 获取此列表中每个元素的以下每个元素同级。 |
Elements | nextAll(String query) | 获取此列表中与查询匹配的每个元素的以下每个元素同级。 |
Elements | not(String query) | 从此列表中删除与Selector查询匹配的元素。 |
String | outerHtml() | 获取所有匹配元素的组合外部HTML。 |
Elements | parents() | 获取匹配元素的所有父元素和祖先元素。 |
Elements | prepend(String html) | 将提供的HTML添加到每个匹配元素的内部HTML的开头。 |
Elements | prev() | 获取此列表中每个元素的直接上一个元素同级。 |
Elements | prev(String query) | 获取此列表中每个元素的直接前一个元素同级,由查询过滤。 |
Elements | prevAll() | 获取此列表中每个元素的每个先前的元素同级。 |
Elements | prevAll(String query) | 获取此列表中与查询匹配的每个元素的每个先前的元素同级。 |
Elements | remove() | 从DOM中删除每个匹配的元素。 |
Elements | removeAttr(String attributeKey) | 从每个匹配的元素中删除一个属性。 |
Elements | removeClass(String className) | 从每个匹配元素的class属性中删除类名称(如果存在)。 |
Elements | select(String query) | 在此元素列表中找到匹配的元素。 |
Elements | tagName(String tagName) | 更新每个匹配元素的标签名称。 |
String | text() | 获取所有匹配元素的组合文本。 |
List<TextNode> | textNodes() | 获取TextNode作为所选元素的直接子节点的节点。 |
Elements | toggleClass(String className) | 在每个匹配元素的class属性上切换类名称。 |
String | toString() | 获取所有匹配元素的组合外部HTML。 |
Elements | traverse(NodeVisitor nodeVisitor) | 对每个选定元素执行深度优先遍历。 |
Elements | unwrap() | 从DOM中删除匹配的元素,并将其子级上移到其父级中。 |
String | val() | 获取第一个匹配元素的表单元素的值。 |
Elements | val(String value) | 在每个匹配的元素中设置表单元素的值。 |
Elements | wrap(String html) | 将提供的HTML环绕每个匹配的元素。 |
public interface Connection 接口
要获得一个新连接,使用Jsoup.connect(字符串)。连接包含连接。请求和连接。响应对象。请求对象可作为原型请求重用。
所有方法
修饰符和类型 | 方法名称 | 描述 |
---|---|---|
Connection | cookie(String name, String value) | 设置要在请求中发送的cookie。 |
Connection | cookies(Map<String,String> cookies) | 将每个提供的cookie添加到请求中。 |
Connection.KeyVal | data(String key) | 获取此密钥的数据KeyVal(如果有) |
Connection | data(String… keyvals) | 添加许多请求数据参数。 |
Connection | data(String key, String value) | 添加请求数据参数。 |
Connection | data(String key, String filename, InputStream inputStream) | 添加输入流作为请求数据参数。 |
Connection | data(String key, String filename, InputStream inputStream, String contentType) | 添加输入流作为请求数据参数。 |
Connection | data(Collection<Connection.KeyVal> data) | 将所有提供的数据添加到请求数据参数中 |
Connection | data(Map<String,String> data) | 将所有提供的数据添加到请求数据参数中 |
Connection.Response | execute() | 执行请求。 |
Connection | followRedirects(boolean followRedirects) | 将连接配置为(不)遵循服务器重定向。 |
Document | get() | 将请求作为GET执行,然后解析结果。 |
Connection | header(String name, String value) | 设置请求标头。 |
Connection | headers(Map<String,String> headers) | 将每个提供的标头添加到请求中。 |
Connection | ignoreContentType(boolean ignoreContentType) | 解析响应时,忽略文档的Content-Type。 |
Connection | ignoreHttpErrors(boolean ignoreHttpErrors) | 将连接配置为在发生HTTP错误时不引发异常。 |
Connection | maxBodySize(int bytes) | 设置在关闭连接之前,将要从(未压缩的)连接读入主体的最大字节数,并截断输入(即 |
Connection | method(Connection.Method method) | 将请求方法设置为使用GET或POST。 |
Connection | parser(Parser parser) | 提供在解析对文档的响应时要使用的备用解析器。 |
Document | post() | 将请求作为POST执行,然后解析结果。 |
Connection | postDataCharset(String charset) | 设置x-www-form-urlencoded帖子数据的默认帖子数据字符集 |
Connection | proxy(String host, int port) | 设置用于此请求的HTTP代理。 |
Connection | proxy(Proxy proxy) | 设置要用于此请求的代理。 |
Connection | referrer(String referrer) | 设置请求引荐来源网址(又称为“引荐来源”)标头。 |
Connection.Request | request() | 获取与此连接关联的请求对象 |
Connection | request(Connection.Request request) | 设置连接的请求 |
Connection | requestBody(String body) | 设置POST(或PUT)请求正文。 |
Connection.Response | response() | 请求执行后,获取响应 |
Connection | response(Connection.Response response) | 设置连接的响应 |
Connection | sslSocketFactory(SSLSocketFactory sslSocketFactory) | 设置自定义SSL套接字工厂 |
Connection | timeout(int millis) | 设置总的请求超时时间。 |
Connection | url(String url) | 将请求URL设置为获取。 |
Connection | url(URL url) | 将请求URL设置为获取。 |
Connection | userAgent(String userAgent) | 设置请求用户代理标头。 |
jsoup 的基本使用以及API内容相关推荐
- java jsoup解析开彩网api接口json数据实例
https://www.cnblogs.com/zdz8207/p/7288830.html 开彩网apiJava技术学习 https://www.itkc8.com json-lib-2.4-jdk ...
- strapi 开源api 内容管理平台试用
strapi 是一个开源的api && 内容管理平台,功能操作起来还是比较方便简单的. 安装 使用docker && docker-compose 代码clone gi ...
- Jsoup获取动态js生成的内容
Jsoup本身是只能获取到静态页面的数据,并无法获取动态生成的内容,所以单单使用jsoup是无法获取到js生成的内容的.我这里使用了htmlunit来获取网页内容后,将网页转换成xml格式,再通过js ...
- autojs调用jsoup提取QQ收藏的完整内容
说明 本文提供的代码仅供参考. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能"实现类似于按键精灵一 ...
- java使用爬虫工具jsoup实现抓取网页的内容及图片并写入到word文档中
背景: 有个朋友最近让帮忙写个小功能,需求大概是,1万个链接,让爬每个链接中的某一段文章并附一张图片,每五个链接写入到一个word文档中. 基本思路,就是先去找个爬虫框架把链接网页中内容和图片写到wo ...
- QingTing.Fm-WPF是调用蜻蜓FMAPI 查询API内容展示,进行播放
QingTing.Fm 是调用蜻蜓FM API 查询界面内容,进行在线播放. Release地址下载 环境 Visual Studio 2019,dotNet Framework 4.6.1 SD ...
- Jsoup设置一个元素的HTML内容
获取一个元素中的HTML内容,可以使用Element中的HTML设置方法. 示例 Element div = doc.select("div").first(); // <d ...
- HttpClient模拟登录、HtmlUnit模拟登录,jsoup爬取登录后的内容(不带验证码)
一.HttpClient模拟登录是通过post或get请求,登录后抓取的是静态页面,动态页面使用HtmlUnit public static void main(String[] args) thro ...
- HTML5 API详解(12):canvas画布API提供的内容很丰富啊~
不考虑代码质量的话,一般来说css3>canvas>纯js. 1. css3动画是独立与js线程的,js的运算操作不会阻塞css3的动画,所以在系统cpu占用率较高的时候,css3的动画性 ...
最新文章
- 膨胀卷积--Multi-scale context aggregation by dilated convolutions
- python求立方尾不变_蓝桥杯:单词分析——————Python
- 中小企业IT不可错过的十大虚拟机软件
- 如何从特定位置开始分享YouTube视频
- 计算器java程序设计报告总体设计,java程序设计实验报告-计算器
- 多软件启动器 v1.0
- Eureka Server 集群
- STM32F0xx_ADC采集电压配置详细过程
- html 中的特殊字符转义,html拼接字符串中特殊字符(‘ “ 等的转义问题)
- 关于如何提取仙剑奇侠传4的模型
- 逻辑题(持续更新中)
- win7蓝屏0x0000003b解决教程
- 《富兰克林自传》的读后感作文4300字
- IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理
- Vue~在线预览doc、docx、pdf、img文件
- memsql-官宣世界最快的内存关系型数据库安装部署
- Vi编辑器的常用命令2(文件操作)
- 如何破解PDF文档不能打印?
- 《黑客帝国》或颠倒的两面
- 开车和做股票有什么相似之处?