android中jsoup解析html的几个例子
2014-11-06 21:03
260 查看
1.获取百度所有链接的例子(通过ID):
Java代码
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 的新闻标题。
Java代码
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连续获取多个页面。即保持会话。
Java代码
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的值都读出来。
Java代码
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();
Java代码
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 的新闻标题。
Java代码
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连续获取多个页面。即保持会话。
Java代码
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的值都读出来。
Java代码
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的几个例子
- android中jsoup解析html的几个例子
- android中jsoup解析html的几个例子
- android中jsoup解析html的几个例子
- android中jsoup解析html的几个例子
- android中jsoup解析html的几个例子
- 我的Android笔记(八)—— 使用Jsoup解析Html
- 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView
- android使用Jsoup进行html数据解析简单实例浅析
- Android使用Jsoup解析Html表格的方法
- Android利用Jsoup解析html 开发网站客户端小记
- Android 利用jsoup解析 html
- Android利用Jsoup解析html 开发网站客户端小记。
- 我的Android笔记(八)—— 使用Jsoup解析Html
- android专业分享1 Android利用Jsoup解析html 开发网站客户端小记。
- 我的Android笔记(八)—— 使用Jsoup解析Html
- Android使用Jsoup解析HTML页面
- android jsoup解析html
- Android 利用jsoup解析 html
- android jsoup 解析 Html