1.获取百度所有链接的例子(通过ID):
public class Activity01(改成你自己的Activity) extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
String myString = null;
StringBuffer sff = new StringBuffer();//一定要new一个,我刚开始搞忘了,出不来。
try
{
Document doc = Jsoup.connect("http://www.baidu.com").get();
Elements links = doc.select("a[href]");
//注意这里是Elements不是Element。同理getElementById返回Element,getElementsByClass返回时Elements
for(Element link : links){
//这里没有什么好说的。
sff.append(link.attr("abs:href")).append(" ").append(link.text()).append(" ");
}
myString = sff.toString();
}
catch (Exception e)
{
myString = e.getMessage();
e.printStackTrace();
}
/**//* 将信息设置到TextView */
tv.setText(myString);
/**//* 将TextView显示到屏幕上 */
this.setContentView(tv);
}
}
2.获取news.cqu.edu.cn中class为topnews 的新闻标题。
package huxiaoan.cqu.praseHtml;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HtmlActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.out);
String myString = new String();
try {
Document doc = Jsoup.connect("http://news.cqu.edu.cn").get();
//Elements
Elements topnews = doc.getElementsByClass("topnews");
//Elements
Elements links = topnews.select("a[href]");
for (Element link : links) {
myString+=link.text();
myString+="\n";
}
} catch (Exception e) {
myString = e.getMessage();
e.printStackTrace();
}
/* 将信息设置到TextView */
tv.setText(myString);
}
}
3.利用session连续获取多个页面。即保持会话。
package huxiaoan.cqu.praseHtml;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import org.jsoup.Connection;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HtmlActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.out);
String myString = new String();
String sessionid = new String();
try {
// 登录获取sessionid
Connection con = Jsoup.connect("http://www.jwc.cqu.edu.cn/login.asp")
.data("username", "000")
.data("password", "000");
con.post();
sessionid = con.response().cookie("ASPSESSIONIDCCSTRTQS");
// 查询课表(利用读取到的session值,可以实现保持会话,连续请求了。)
Connection con_query = Jsoup
.connect("http://www.jwc.cqu.edu.cn/PlanAndCurriculum/cour_tab_sel_stud.ASP")
.cookie("ASPSESSIONIDCCSTRTQS", sessionid);
// 读取内容
Document doc = con_query.get();
Elements fonts = doc.getElementsByTag("b");
for (Element font : fonts) {
myString += font.text();
}
} catch (Exception e) {
myString = e.getMessage();
e.printStackTrace();
}
/* 将信息设置到TextView */
tv.setText(myString);
}
}
这个例子经过我无数次的测试,经常出现读不到session值的情况。耽误了我很长一段时间。
找了各种英文网站,找到了一种解决办法,我不知道以后还会不会出现问题 。解决方法是,把所有cookie的值都读出来。
Connection.Response res = Jsoup.connect("http://www.jwc.cqu.edu.cn/login.asp")
.data("username", "000","password", "000")
.method(Method.POST)
.execute();
Map<String, String> cookies = res.cookies();
//如果需要 Document doc1 = res.parse();
Connection connection = Jsoup.connect("http://www.jwc.cqu.edu.cn/PlanAndCurriculum/cour_tab_sel_stud.ASP");
for (Entry<String, String> cookie : cookies.entrySet()) {
connection.cookie(cookie.getKey(), cookie.getValue());
}
Document doc = connection.get();
分享到:
相关推荐
本文将深入探讨如何在Android中利用`jsoup`库解析HTML文件并进行内容替换。 首先,让我们了解什么是`jsoup`。`jsoup`是一个Java库,提供了一种简单而强大的API,用于处理现实世界中的HTML。它可以解析HTML,提取和...
**Android使用Jsoup技术解析HTML** ...总之,Jsoup为Android开发者提供了一个强大的工具,帮助我们高效、安全地解析和处理HTML内容。结合异步处理和UI更新的最佳实践,我们可以构建出优秀的数据驱动的Android应用。
总之,Jsoup为Android开发者提供了一种高效、便捷的方式来解析和操作HTML,从而在各种应用场景中实现数据的提取和处理。通过熟练掌握Jsoup,开发者可以轻松地从网页中获取有价值的信息,并将其融入到Android应用程序...
Jsoup是一个Java库,它提供了丰富的API来处理HTML文档,使得在Android中解析网页链接变得更加简单。 首先,让我们了解Jsoup的基本用法。Jsoup通过连接到指定的URL并下载HTML内容,然后解析这个内容以创建一个可操作...
**Jsoup:HTML解析神器** Jsoup是一款Java库,它为了解析、提取以及操作HTML提供了强大的工具。在Web开发中,我们常常需要处理各种HTML文档,比如抓取网页数据、自动化测试或是构建爬虫。Jsoup以浏览器的方式解析...
在这个例子中,我们首先导入了Jsoup类库,然后通过`Jsoup.connect(url).get()`方法获取到网页的HTML文档,并将其存储在`Document`对象中。`doc.title()`则用来获取页面的标题。 其次,Jsoup提供了强大的选择器功能...
2. **解析HTML文档**:下载的HTML内容可以通过`parse()`方法解析成一个`Document`对象,这是Jsoup处理HTML的基础。 ```java String html = "<html><head><title>Test</title></head><body><p>Hello World</p></...
### 关于Android之Jsoup解析 #### 一、Jsoup简介及主要功能 Jsoup是一款专为Java设计的HTML解析库,它可以帮助开发者轻松地解析HTML文档并从中抽取所需的数据。Jsoup支持从URL地址、文件或字符串等多种来源读取...
总结来说,jsoup是一个强大且易用的Java库,它的API设计简洁,支持HTML解析、选择、操作等功能,是处理HTML数据的理想工具。无论是网页抓取、数据提取还是内容修改,jsoup都能提供高效且安全的解决方案。
这是使用Jsoup解析HTML得到数据的一个小例子,具体的使用方法请参见我的博客:http://blog.csdn.net/ProgramChangesWorld/article/details/47134255
在名为"NewSipder"的项目中,你可能正在构建一个网络爬虫,利用JSoup解析HTML内容。爬虫可能包括以下步骤: 1. **设置连接参数**:配置Jsoup连接,如超时时间、重试次数等。 2. **抓取页面**:使用`Jsoup.connect()...
**Jsoup库解析HTML、XML或URL链接中的DOM节点** Jsoup是一款强大的Java库,它设计用于处理实际世界中的HTML,使得开发者可以方便地提取和操作数据。在Web开发中,有时我们需要从网页中获取特定信息,比如文章内容、...
HttpClient和Jsoup是Java开发中常用的两个库,用于网络数据采集和HTML解析。HttpClient提供了强大的HTTP客户端服务,而Jsoup则是一个优秀的库,用于处理和理解HTML文档结构。本篇文章将深入探讨这两个库的使用方法...
Java HTML解析工具Jsoup是一个强大的库,专门设计用于处理HTML文档,提取和操作数据。它提供了类似于DOM、CSS以及jQuery的API,使得在Java中处理HTML变得简单易行。Jsoup能够连接到网页,下载HTML内容,然后进行解析...
本篇文章将详细介绍如何在Android应用中使用Jsoup来解析HTML表格。 首先,Jsoup是一个Java库,它提供了丰富的API来解析HTML,提取数据,并执行DOM操作。它的功能包括选择器(类似于CSS选择器)来定位元素,以及方便...
在Java编程领域,Jsoup库是一个非常实用的工具,它专为解析HTML和提取结构化数据而设计。本文将深入探讨如何使用Jsoup解析HTML,并根据解析结果来修改文件名。我们将通过一个简单的示例来展示这个过程。 首先,我们...
【Android OkHttp3 Jsoup】模拟登录教务系统抓取课表和成绩是移动应用开发中的一个典型场景,涉及到的主要技术点包括网络请求库OkHttp3、HTML解析库Jsoup以及JSON和XML数据处理。本项目是针对Eclipse开发环境的,...
标题中的"jsoup解析html所需包1.7.3"表明我们将讨论的是JSoup 1.7.3版本,这个版本包含了三个关键的组件。 1. **jsoup-1.7.3.jar**:这是JSoup的核心库文件,包含了所有用于解析HTML的类和方法。开发人员在项目中...
1. **从URL、文件或字符串中解析HTML**:无论是网络上的HTML页面还是本地文件,甚至是字符串形式的HTML文本,jsoup都能够轻松解析。 2. **使用DOM或CSS选择器查找数据**:支持DOM方式的节点查询,也支持使用CSS选择...
利用jsoup工具解析html的demo