求教用Jsoup解析HMTL编码
网上说jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容,然后给出了部分代码。但是我并不知道这个解析器具体是怎么加载,怎么用的,求大神指教啊!(PS:最好是有完整的代码,并且具体说一下Jsoup的使用) --------------------编程问答-------------------- 我自己写的一段代码。。。。。现在还遇到点问题没有解决 但是可以供你参考 可以正常运行。。。。。。public class httpclient {
public static void main(String[] args) {
String html="http://v.hao123.com/movie/index/lx-aq";
System.out.println(html+".............");
Document doc=Jsoup.parse(html);
System.out.println(doc+".....doc........");
try {
Document doct=Jsoup.connect(html).get();
System.out.println(doct+"......doct.......");
String title= doct.title();
System.out.println(title+"......title.......");
Jsoup.connect(html).data("query", "java")//请求参数
.userAgent("I ’ m jsoup")//设置
.cookie("auth", "token")//
.timeout(3000)//设置连接超时时间
.post(); //使用post方法访问url
// 得到:<meta name="Keywords" content="电影频道,视频下载,体育视频,在线视频,免费视频,自拍,视频教学,网络视频"/>
//Element connect= doc.getElementById("content");
Elements address= doct.select("p.provide provider clearfix").select("a[href]");
for (Element element : address) {
String href=element.attr("href");
String text=element.text();
System.out.println("我是。。。。href的连接地址"+text+href);
}
/* 我想的是得到地址然后再下载会很麻烦的 写个下载功能 逐个下载到本地。。麻烦
* 有人提议用httpclient 来抓取网页和图片
* 这个问题暂时保留????????
*/
Elements pic= doct.select("span.image").select("img[src]");// 所有引用 png 图片的元素
for (Element element : pic) {
String src=element.attr("src");
String text= element.text();
System.out.println("我是得到图片的地址。。。。"+text+src);
}
// doc.select("div.pic").select("img[src$=.jpg]");// 所有引用 png 图片的元素
Elements moviename=doct.select("div.itemlist").select("a.title");//得到电影名字
//System.out.println("moviename。。。。。。。。。。。"+moviename);
for (Element element : moviename) {
String text=element.text();
System.out.println("我是电影名。。。。"+text);
}
// 得到演员列表 有点复杂 先放着。。。。。。。。。。。
Elements actor= doct.select("a.actorName");
for (Element element : actor) {
String text= element.text();
System.out.println("演员。。。。。。。。。。。"+text);
}
System.out.println("..................");
Elements area= doct.select("span.actorSplitToken").select("div.ext_info").select("span.ext_area");//地区
System.out.println("地区。area。。"+area);
for (Element element : area) {
String text=element.text();
System.out.println("地区。。。"+text);
}
Elements time= doct.select("span.year"+" "+"clearfix");//时间
for (Element element : time) {
String text=element.text();
System.out.println("时间。。。"+text);
}
Elements type= doct.select("p.twocol-wrapper clearfix").select("span.type clearfix");//类型
//System.out.println("类型。。。"+type);
for (Element element : area) {
String text=element.text();
System.out.println("类型。。。"+text);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} --------------------编程问答-------------------- public class httpclient {
public static void main(String[] args) {
String html="http://v.hao123.com/movie/index/lx-aq";
System.out.println(html+".............");
Document doc=Jsoup.parse(html);
System.out.println(doc+".....doc........");
try {
Document doct=Jsoup.connect(html).get();
System.out.println(doct+"......doct.......");
String title= doct.title();
System.out.println(title+"......title.......");
Jsoup.connect(html).data("query", "java")//请求参数
.userAgent("I ’ m jsoup")//设置
.cookie("auth", "token")//
.timeout(3000)//设置连接超时时间
.post(); //使用post方法访问url
// 得到:<meta name="Keywords" content="电影频道,视频下载,体育视频,在线视频,免费视频,自拍,视频教学,网络视频"/>
//Element connect= doc.getElementById("content");
Elements address= doct.select("p.provide provider clearfix").select("a[href]");
for (Element element : address) {
String href=element.attr("href");
String text=element.text();
System.out.println("我是。。。。href的连接地址"+text+href);
}
/* 我想的是得到地址然后再下载会很麻烦的 写个下载功能 逐个下载到本地。。麻烦
* 有人提议用httpclient 来抓取网页和图片
* 这个问题暂时保留????????
*/
Elements pic= doct.select("span.image").select("img[src]");// 所有引用 png 图片的元素
for (Element element : pic) {
String src=element.attr("src");
String text= element.text();
System.out.println("我是得到图片的地址。。。。"+text+src);
}
// doc.select("div.pic").select("img[src$=.jpg]");// 所有引用 png 图片的元素
Elements moviename=doct.select("div.itemlist").select("a.title");//得到电影名字
//System.out.println("moviename。。。。。。。。。。。"+moviename);
for (Element element : moviename) {
String text=element.text();
System.out.println("我是电影名。。。。"+text);
}
// 得到演员列表 有点复杂 先放着。。。。。。。。。。。
Elements actor= doct.select("a.actorName");
for (Element element : actor) {
String text= element.text();
System.out.println("演员。。。。。。。。。。。"+text);
}
System.out.println("..................");
Elements area= doct.select("span.actorSplitToken").select("div.ext_info").select("span.ext_area");//地区
System.out.println("地区。area。。"+area);
for (Element element : area) {
String text=element.text();
System.out.println("地区。。。"+text);
}
Elements time= doct.select("span.year"+" "+"clearfix");//时间
for (Element element : time) {
String text=element.text();
System.out.println("时间。。。"+text);
}
Elements type= doct.select("p.twocol-wrapper clearfix").select("span.type clearfix");//类型
//System.out.println("类型。。。"+type);
for (Element element : area) {
String text=element.text();
System.out.println("类型。。。"+text);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} --------------------编程问答-------------------- 我有jsoup的pdf文档,里面有详细的用法,你要不?它的语法和jquery差不多 --------------------编程问答-------------------- 多谢各位的指点了,我后来用了HtmlParser,效果还是不错
补充:Java , 非技术区