轩辕

运筹帷幄世界在我手中!

导航

应用Jsoup解析给定的某个URL地址、HTML文本内容。

 

首先下载jsoup的jar包,然后在新建的工程里导入jsoup包。再编译就可以了
 
package example;
 
import java.io.IOException;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
public class screenscrape {
 
/**
 * @param args
 */
public static void main(String[] args) throws IOException {
        Document doc = Jsoup.connect("http://www.menneske.no/arukone/5x5/eng/?number=499").get();
        Elements contents = doc.getElementsByClass("arukone");
        Elements datas = contents.get(0).getElementsByTag("table");
        for (Element data : datas) 
        {
            Elements trs=data.getElementsByTag("tr");
            System.out.println("姓名:彭峻华,地区:杭州市滨江区  Email:junhua_peng@foxmail.com");
            for (int i = 0; i<trs.size(); i++) 
            {
                Elements tds = trs.get(i).getElementsByTag("td");
               
                for(int j = 0; j<tds.size(); j++){
                    if(!"".equals(tds.get(j).text())){
                        System.out.println("499,super easy:"+" "+tds.get(j).text()+","+i+","+j);
                    }
                }
            }
        }
    }
}
运行结果截图如下:
 
 
 
 
Jsoup介绍:
 jsoup是一款java的HIML解析器,可以直接解析某个URL地址,HIML文本内容。他提供了一套非常省力的APPI,可以通过DOM,CSS以及类似于jQuery的操作方法取出和操作数据。
 jsoup的主要功能如下:
 1.从一个URL,文件或字符串中解析HTML;
 2.使用DOM或CSS选择器来查找、取出数据;
 3.可操作HTML元素、属性、文本;
  例如:元素检索方面
 File input=new File("D:\test.html");
 Document doc=Jsoup.parse(input,"UTF-8","网址");
 Elements links=doc.select("a[href]");
 Elements pngs=doc.select("img[src$=.png]");
Element masthead=doc.select("div.masthead",first());
Elements resultLinks=doc.select("h3.r>a"); //direct a after h3
 
 
 

1. HTML文件解析例子
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

2. URL解析例子
URL url = new URL("http://example.com/");

Document doc = Jsoup.parse(url, 3*1000);String title = doc.title();

 
// 从URL直接加载HTML 文档
Document doc =Jsoup.connect("网址/").get();
String title = doc.title();
Document doc =Jsoup.connect("网址/")
.data("query", "Java")   //请求参数
.userAgent("I’mjsoup") //设置User-Agent
.cookie("auth", "token") //设置cookie
.timeout(3000)           //设置连接超时时间
.post();                 //使用POST方法访问URL
 
 
至于本题的代码实现如下:
public static void main(String[] args) throws IOException {
        Document doc = Jsoup.connect("http://www.menneske.no/arukone/5x5/eng/?number=499").get();
        Elements contents = doc.getElementsByClass("arukone");
        Elements datas = contents.get(0).getElementsByTag("table");
        for (Element data : datas) 
        {
            Elements trs=data.getElementsByTag("tr");
            for (int i = 0; i<trs.size(); i++) 
            {
                Elements tds = trs.get(i).getElementsByTag("td");
                for(int j = 0; j<tds.size(); j++){
                    if(!"".equals(tds.get(j).text())){
                        System.out.println(tds.get(j).text()+","+i+","+j);
                    }
                }
            }
        }
    }

posted on 2013-02-23 11:50  峻华  阅读(2399)  评论(0)    收藏  举报