`
chenlong_1988
  • 浏览: 185507 次
  • 性别: Icon_minigender_2
社区版块
存档分类

jsoup test

 
阅读更多

import java.io.File;

import java.io.IOException;

import java.net.URL;

 

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.safety.Whitelist;

import org.jsoup.select.Elements;

 

public class test {

 

/*

* Jsoup.parse(String html) [html:是html代码]

* Jsoup.parse(String html, String baseUri) [baseUri:是用来将相对 URL 转成绝对URL]

* Jsoup.parseBodyFragment(String html)

* Jsoup.connect(String url) [方法说明:从一个URL加载一个Document对象]

* Jsoup.parse(File in, String charsetName, String baseUri) [方法说明:根据一个文件加载Document对象]

* Jsoup.parse(File in, String charsetName) [方法说明:根据一个文件加载Document对象]

* */

public static void main(String[] args) {

/*

* parse(String html, String baseUri) 这方法能够将输入的HTML解析为一个新的文档 (Document),

* 参数 baseUri 是用来将相对 URL 转成绝对URL,并指定从哪个网站获取文档。

* 如这个方法不适用,你可以使用 parse(String html) 方法来解析成HTML字符串如上面的示例。

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

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

* */

// 直接从字符串中输入 HTML 文档

String html = "<html><head><title> 开源中国社区 </title></head>"

 + "<body><p> 这里是 jsoup 项目的相关文章 </p></body></html>"; 

Document doc = Jsoup.parse(html); 

 

//只用一行代码就可以将html转成纯文本:

System.out.println(Jsoup.parse(html).text());

try {

 

/*

 * 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 (http和https 协议); 

 *   假如你需要从一个文件加载,可以使用 parse(File in, String charsetName) 代替。

 * */

 

// 从 URL 直接加载 HTML 文档

Document doc1 = Jsoup.connect("http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/").get(); 

String title = doc1.title(); 

// System.out.println(title1);

 

Document doc2 = Jsoup.connect("http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/") 

 .data("query", "Java")   // 请求参数

 .userAgent("I ’ m jsoup") // 设置 User-Agent 

 .cookie("auth", "token") // 设置 cookie 

 .timeout(3000)           // 设置连接超时时间

 .post();                 // 使用 POST 方法访问 URL 

 

 

// System.out.println(doc2.getAllElements());

 

/*

 * parse(File in, String charsetName, String baseUri) 这个方法用来加载和解析一个HTML文件。

 * 如在加载文件的时候发生错误,将抛出IOException,应作适当处理。

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

 * 另外还有一个方法parse(File in, String charsetName) ,它使用文件的路径做为 baseUri。

 * 这个方法适用于如果被解析文件位于网站的本地文件系统,且相关链接也指向该文件系统。 

 * */

 

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

File input = new File("D:/test.htm");

Document doc3 = Jsoup.parse(input, "UTF-8","http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml//");

// System.out.println(doc3.html());

Element content = doc3.getElementById("ibm-masthead-dw");

Elements links = content.getElementsByTag("a");

for (Element link : links) {

String linkHref = link.attr("href");

String linkText = link.text();

// System.out.println(linkHref);

// System.out.println(linkText);

}

/*

* 这个select 方法在Document, Element,或Elements对象中都可以使用。

* 且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。

* Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果

* */

 

Elements links2 = doc.select("a[href]"); // 具有 href 属性的链接��

// System.out.println(links2);

Elements gif = doc.select("img[src$=.gif]");// 所有引用 gif 图片的元素Ԫ��

// System.out.println(gif);

Element masthead = doc.select("div.masthead").first();// 找出定义了 class=masthead 的元素

// System.out.println(masthead);

//jsoup 的 attr 方法提供了一个 abs: 的操作

 

URL url = new URL("http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/");

Document doc4 = Jsoup.parse(url, 3*5000);

 

Element link = doc4.select("a").first();

String relHref = link.attr("href"); // == "#ibm-content"

//链接包含主机地址

String absHref = link.attr("abs:href"); // "http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/#ibm-content"

// System.out.println("relHref"+ relHref);

// System.out.println("absHref"+ absHref);

 

 

//脚本清除

String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";

String safe = Jsoup.clean(unsafe, Whitelist.basic());

// now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>

System.out.println(safe);

/*

 * 在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,

 * 例如我们可以为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。

 * */

doc.select("div.comments a").attr("rel", "nofollow"); 

// 为所有链接增加 rel=nofollow 属性

doc.select("div.comments a").addClass("mylinkclass"); 

// 为所有链接增加 class=mylinkclass 属性

doc.select("img").removeAttr("onclick"); // 删除所有图片的 onclick 属性

doc.select("input[type=text]").val(""); // 清空所有文本输入框中的文本

 

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

 

}


分享到:
评论

相关推荐

    jsoup-1.11.2.jar.zip

    String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello World!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"; doc = Jsoup.parse(html); ``` 接下来,你可以使用CSS选择器来查找元素: ```java Elements paragraphs = doc....

    JsoupDemo可运行的完整工程

    **JsoupDemo可运行的完整工程** JsoupDemo是一个基于Java的项目,它利用Jsoup库来实现网页内容的抓取和解析。Jsoup是一款强大的、易于使用的库,专门用于处理实际世界中的HTML,帮助开发者提取和操作数据。在本项目...

    Jsoup集成代理ip设置功能

    在Jsoup.jar中集成代理ip的设置功能,方便用户使用, 例:Jsoup.connect("http://1212.ip138.com/ic.asp").proxy("test.proxy.mayidaili.com", 8123, null).header("Proxy-Authorization", authHeader).get();

    jsoup-1.8.1.jar

    String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test Page&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello, World!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"; Document doc = Jsoup.parse(html); // 使用CSS选择器选取元素 Elements paragraphs = doc.select("p...

    Jsoup中文教程

    Document doc = Jsoup.parse("&lt;html&gt;&lt;body&gt;&lt;div class='test'&gt;Hello&lt;/div&gt;&lt;span&gt;World&lt;/span&gt;&lt;/body&gt;&lt;/html&gt;"); Elements elements = doc.select("div.test"); // 选择class为'test'的div元素 for (Element element ...

    JSoup解析URL或HTML的内容

    **JSoup:强大的HTML解析库** JSoup是一个用于Java的开源库,专门设计用来解析HTML内容,同时也支持从URL抓取网页...在压缩包中的"JavaJsoup"文件中,你可能找到更多关于如何在Java项目中集成和使用JSoup的示例代码。

    Jsoup解析html+xml

    String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello World&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"; Document doc = Jsoup.parse(html); ``` 3. **元素选择**:Jsoup支持CSS选择器,可以方便地找到文档中的特定...

    jsoup.rar 版本1.11.2 公司maven下载不下来

    String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test Page&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello, World!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"; Document doc = Jsoup.parse(html); // 清理并获取标题 String cleanedTitle = doc.title(); ...

    基于jsoup的SpringBoot爬虫demo

    6. `src`:源代码目录,通常包含`main`和`test`两个子目录,分别存放主程序代码和测试代码。 7. `.idea`:IntelliJ IDEA的项目元数据目录,包含了IDE的项目配置信息。 **项目实现** 该项目的核心部分可能包含以下...

    jsoup源码与文档

    这个工具包包含了jsoup的三个关键组成部分:javadoc(API文档)、sources(源代码)和jar(编译后的类库),使得开发者能够深入理解并高效使用jsoup。 **一、jsoup的功能特性** 1. **HTML解析**:jsoup能够准确地...

    JAVA jSOUP解析html

    本篇将详细介绍jSoup库在Java中解析HTML的相关知识点,并通过提供的`Test01.java`和`UrlUtils.java`两个文件名推测可能的实现方式。 **1. jSoup库介绍** jSoup是Java的一个开源库,专门用于解析HTML和XML文档。它...

    利用jsoup解析网页

    **jsoup库详解** 在Java世界中,处理HTML文档并从中提取数据时,jsoup是一个非常强大的工具。这个开源库提供了简洁的API,使得我们能够方便地解析、操作以及清洁HTML内容,就像处理DOM(Document Object Model)...

    jsoup-1.8.1.jar包

    **jsoup库详解** 在Java开发中,处理HTML文档是一项常见的任务,无论是从网页抓取信息,还是进行数据解析,都需要高效且可靠的工具。jsoup就是这样一个强大的库,专为了解析、提取和操作HTML而设计。jsoup的最新...

    关于android之Jsoup解析

    ### 关于Android之Jsoup解析 #### 一、Jsoup简介及主要功能 Jsoup是一款专为Java设计的HTML解析库,它可以帮助开发者轻松地解析HTML文档并从中抽取所需的数据。Jsoup支持从URL地址、文件或字符串等多种来源读取...

    jsoup.rar 用java实现jquery

    - **jsoup开发指南,jsoup中文使用手册,jsoup中文文档_files**:这个文件夹通常包含文档中引用的图片、样式表和脚本,确保文档在本地正确显示。 总的来说,jsoup是一个强大且易用的Java库,它使得处理HTML变得更加...

    html解析工具 jsoup-1.8.1.jar

    在标题中提到的"jsoup-1.8.1.jar"是JSoup库的一个版本,它是一个可直接添加到Java项目的jar包,方便开发者在项目中快速引入并使用。 **1. JSoup的基本用法** JSoup的核心接口是`org.jsoup.Jsoup`,它提供了一种...

    jsoup-1.8.1 lib包

    String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test Page&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello, World!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"; Document doc = Jsoup.parse(html); System.out.println("Title: " + doc.title()); // 解析URL ...

    jsoup示例-爬取广西师大首页信息

    在项目"Jsoup_Test2"中,可能包含了以下内容: 1. 主要的Java源代码文件,用于实现爬虫逻辑。 2. 可能有的配置文件,如日志设置或者代理服务器信息。 3. 测试用例,用于验证爬取和解析功能是否正常工作。 测试代码...

    jsoup解析某城市的XML

    最后,压缩包中的`test_1`文件可能是一个XML文件,包含了我们要解析的具体数据。将这个文件解压后,使用上述代码进行实际的解析操作,你可以从中获取有关该城市的具体信息。 总的来说,Jsoup虽然主要设计用于HTML...

    jetty 8 嵌入web 及Jsoup测试

    - **模拟HTTP请求**:在测试中,可以使用Jsoup的`connect`方法模拟用户请求,如`Jsoup.connect("/test").execute()`。 - **验证响应**:执行请求后,可以获取响应状态码、头部信息和HTML内容,然后用Jsoup解析响应...

Global site tag (gtag.js) - Google Analytics