HttpClient抓取网页的两种方式

所属分类: 实用技巧 / 应用技巧 阅读数: 501
收藏 0 赞 0 分享
一、利用NodeFilter对网页进行分析

1、生成一个Parser
a.通过url提取网络上的网页
复制代码 代码如下:

Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");

b.提取本地网页文件
通过读文件把网页文件转化成字符串;
复制代码 代码如下:

Parser parser=Parser.createParser(html,charset);

2、利用NodeFilter做一个filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);

3、通过匹配filter,得到所有符合条件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag 内容
如果针对具体情况进行更加详细的处理,则:
复制代码 代码如下:

ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}

然后根据需要做相应的处理。

二、利用Visitor对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
复制代码 代码如下:

Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");

b.提取本地网页文件
通过读文件把网页文件转化成字符串;
复制代码 代码如下:

Parser parser=Parser.createParser(html,charset);

2、用visitor访问页面
复制代码 代码如下:

ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);

3、通过特定的visitor得到符合条件的Tag
复制代码 代码如下:

Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根据需要做特定处理
}
更多精彩内容其他人还在看

解决最近Hotmail无法登陆,hotmail不能登陆的最新解决方法总结

解决最近Hotmail无法登陆,hotmail不能登陆的最新解决方法总结
收藏 0 赞 0 分享

用nero刻录可启动功能的光盘而且光盘不是iso格式的

用nero刻录可启动功能的光盘而且光盘不是iso格式的
收藏 0 赞 0 分享

上海居住证办理 续办上海居住证全攻略

上海居住证办理 续办上海居住证全攻略
收藏 0 赞 0 分享

可以用IE轻松远程控制对方电脑的软件 motelyAnywhere 安装使用图文教程

可以用IE轻松远程控制对方电脑的软件 motelyAnywhere 安装使用图文教程
收藏 0 赞 0 分享

完美解决Persits.Jpeg.1 错误 ''800a0001''

完美解决Persits.Jpeg.1 错误 ''800a0001''
收藏 0 赞 0 分享

真正解决win2003的“由于下列错误,Parallel port driver 服务启动失败的解决方法”

真正解决win2003的“由于下列错误,Parallel port driver 服务启动失败的解决方法”
收藏 0 赞 0 分享

ftp上传时数据Socket错误连接超时的解决方法

ftp上传时数据Socket错误连接超时的解决方法
收藏 0 赞 0 分享

解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法

解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法
收藏 0 赞 0 分享

让星空极速彻底下岗的图文教程

让星空极速彻底下岗的图文教程
收藏 0 赞 0 分享

打开扩展名为ac.$的AutoCAD的临时文件的方法

打开扩展名为ac.$的AutoCAD的临时文件的方法
收藏 0 赞 0 分享
查看更多