使用了html解析器jsoup来获取页面所有链接,顺便试下把jsoup放进android中使用下,发现jsoup在android中能直接使用,测试例子代码(本文只作了简单测试):
tt.jsp页面
<%
@?page?language
=
"
java
"
?contentType
=
"
text/html;?charset=UTF-8
"
????pageEncoding = " UTF-8 " %>
<! DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< meta? http-equiv ="Content-Type" ?content ="text/html;?charset=UTF-8" >
< title > Insert?title?here </ title >
</ head >
< body >
测试连接
< a? href ="http://www.blogjava.net/pengo/" > penngo的博客 </ a >
< a? href ="http://www.blogjava.net/" > blogjava博客 </ a >
</ body >
</ html >
????pageEncoding = " UTF-8 " %>
<! DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< meta? http-equiv ="Content-Type" ?content ="text/html;?charset=UTF-8" >
< title > Insert?title?here </ title >
</ head >
< body >
测试连接
< a? href ="http://www.blogjava.net/pengo/" > penngo的博客 </ a >
< a? href ="http://www.blogjava.net/" > blogjava博客 </ a >
</ body >
</ html >
Activity01.java
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 ?Activity01? 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();
???????? try
???????? {
????????????Document?doc? = ?Jsoup.connect( " http://192.168.64.9:8099/AgentJava/tt.jsp " ).get();
????????????Elements?links? = ?doc.select( " a[href] " );
???????????? for (Element?link?:?links) {
????????????????sff.append(link.attr( " abs:href " )).append( " ?? " ).append(link.text()).append( " \n " );
????????????}
????????????myString? = ?sff.toString();
????????}
???????? catch ?(Exception?e)
???????? {
????????????myString? = ?e.getMessage();
????????????e.printStackTrace();
????????}
???????? /* ?将信息设置到TextView? */
????????tv.setText(myString);
????????
???????? /* ?将TextView显示到屏幕上? */
???????? this .setContentView(tv);
????}
}
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 ?Activity01? 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();
???????? try
???????? {
????????????Document?doc? = ?Jsoup.connect( " http://192.168.64.9:8099/AgentJava/tt.jsp " ).get();
????????????Elements?links? = ?doc.select( " a[href] " );
???????????? for (Element?link?:?links) {
????????????????sff.append(link.attr( " abs:href " )).append( " ?? " ).append(link.text()).append( " \n " );
????????????}
????????????myString? = ?sff.toString();
????????}
???????? catch ?(Exception?e)
???????? {
????????????myString? = ?e.getMessage();
????????????e.printStackTrace();
????????}
???????? /* ?将信息设置到TextView? */
????????tv.setText(myString);
????????
???????? /* ?将TextView显示到屏幕上? */
???????? this .setContentView(tv);
????}
}
运行效果:
本文是在android2.2中开发测试,jsoup在android上使用和在jdk上使用是一样,不用改变代码。