您的位置:首页 > Web前端 > JavaScript

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

2013-02-23 11:50 393 查看
首先下载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);
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: