您的位置:首页 > 移动开发 > Android开发

android用jsoup分析网页

2013-10-25 19:51 323 查看
下面一段程序是用jsoup来提取网页http://index.youku.com/rank_top/排行榜中



各个模块视频的title,比如《王的女人》《继承者们》

程序中只提取了前三个模块的title信息
程序运行前要把jsoup.jar导入项目中,我用的是jsoup-1.7.2.jar

//GetPageContent类的实现
//由于我目前没有写注释的习惯
//所以有关jsoup的文档还需看官自行搜索
//深表歉意!以后会努力改正

import java.io.IOException;
import java.net.*;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import android.annotation.SuppressLint;

@SuppressLint("ParserError")
public class GetPageContent {

private List strList;
public List getHtmlByJsoup(String url){
strList = new ArrayList();
Document doc, docByContent, docTele;
try {
doc = Jsoup.connect(url).get();
//System.out.println(doc.html().toString());
docByContent = Jsoup.parse(doc.html().toString());
Elements tbody = docByContent.select("tbody");
for(int i=0; i<tbody.size(); i++){
Element teleplay = tbody.get(i);// 0是电视剧,1是综艺,2是电影
docTele = Jsoup.parse(teleplay.html());
Elements teleTitle = docTele.select("a[title]");
//Elements teleLink = docTele.select("a[onclick]");
for(int j=0; j<teleTitle.size(); j++){
//System.out.println(teleTitle.get(j).toString());
strList.add(teleTitle.get(j).attr("title"));
System.out.println(teleTitle.get(j).attr("title"));
}

if(i>2)
break;
}
//return strList;

} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage()+"/n"+"debug here at 55555555");
}
return strList;

}

}

/*
android主程序
界面就是一个简单的helloworld
输出是用System.out输出到eclipse中的LogCat上
*/
import java.util.List;
import com.example.use.GetPageContent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class ReadPage extends Activity {
private List<String> list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_page);
new Thread(){
@Override
public void run(){
super.run();
GetPageContent gpc=new GetPageContent();
//gpc.getUrl("www.baidu.com");
list=gpc.getHtmlByJsoup("http://index.youku.com/rank_top/");
System.out.println("===================================");
if(!list.isEmpty()){
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
}
else{
System.out.println("ERROR!!!!!");
}

System.out.println("readPage is over");
}
}.start();
//GetPageContent gpc=new GetPageContent();
System.out.println("000000");
//gpc.streampost("http://www.360doc.com/content/13/1023/18/14346273_323583387.shtml");
// gpc.getUrl("www.baidu.com");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_read_page, menu);
return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: