求教用Jsoup解析HMTL编码

super2012cz 2011-09-22 10:58:42
网上说jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容,然后给出了部分代码。但是我并不知道这个解析器具体是怎么加载,怎么用的,求大神指教啊!(PS:最好是有完整的代码,并且具体说一下Jsoup的使用)
...全文
420 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
super2012cz 2012-11-29
  • 打赏
  • 举报
回复
多谢各位的指点了,我后来用了HtmlParser,效果还是不错
fannifan 2012-06-29
  • 打赏
  • 举报
回复
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();
}
}
}
fannifan 2012-06-29
  • 打赏
  • 举报
回复
我自己写的一段代码。。。。。现在还遇到点问题没有解决 但是可以供你参考 可以正常运行。。。。。。

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();
}
}
}
statichu2 2012-06-29
  • 打赏
  • 举报
回复
我有jsoup的pdf文档,里面有详细的用法,你要不?它的语法和jquery差不多
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机科学领域,编译原理是研究如何将编程语言转化为机器可执行代码的理论基础。其中,三地址代码(Three-Address Code,TAC)作为一种中间表示形式,在编译器设计中经常被使用,尤其是在生成目标代码的阶段。本文将深入探讨三地址代码的概念、生成器的工作原理及其在编译过程中的作用。 三地址代码是一种简单的低级抽象语法树(AST)表示,每条指令涉及三个操作数,通常包括两个源操作数和一个目的操作数。这种格式简化了代码优化和目标代码生成的复杂性。例如,一个简单的算术表达式“x = y + z”在三地址代码中可能表示为: 在这个例子中,“t1”是一个临时变量,存储了“y + z”的结果,然后这个结果被赋值给“x”。 生成三地址代码的过程通常发生在编译器的中间阶段,即语法分析之后,语义分析之前。这个阶段称为“代码生成”或“中间代码生成”。编译器通过词法分析器处理源代码,将其转化为标记流;接着,语法分析器根据上下文无关文法将标记流解析成抽象语法树。三地址代码生成器就是在这个阶段介入,它遍历AST,为每个节点生成对应的三地址指令。 在Turbo C3.0这样的编译器环境下,开发者可以实现自己的三地址代码生成器。虽然Turbo C3.0是一款较老的编译器,但其C语言编译器设计原理依然适用于现代编译器开发。开发过程中,我们需要考虑如下关键点: 符号表管理:符号表记录了程序中所有标识符的类型、作用域和关联地址,对于生成三地址代码至关重要,因为它提供了关于操作数的类型信息。 数据类型转换:编译器必须处理不同数据类型的运算,确保它们在三地址代码中正确表示。例如,整型与浮点型之间的转换需要特别处理。

23,409

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧