使用 htmlparser 包获取网页中的 超链信息 和 超链标题

zhouzhijian888 2008-12-25 09:18:25
能运行 出来的
或者 直接写的 代码也可以
例子 也可以
谢谢了 !```````
...全文
264 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouzhijian888 2008-12-25
  • 打赏
  • 举报
回复
我用的是 htmlparser 2.0的包
parser.extractAllNodesThatAre (TableTag.class);
这个方法报错的
jack0511 2008-12-25
  • 打赏
  • 举报
回复
楼主是要抓取网页中的所有url?
用正则表达式啊
lizhi1026 2008-12-25
  • 打赏
  • 举报
回复
这就是个网址上截取的一部分

看了下,你设置下
String filterStrP = "a"; // 这里析取得是标签为 <a> </a>中的信息
NodeFilter filterP = new TagNameFilter(filterStrP);// 过滤这个标签
NodeList nodeListP = myParserP.extractAllNodesThatMatch(filterP);// 抽取所有匹配的p列表

这个过滤条件改下,就可以了,输入你要获得的超链接的标签。
jiang_jiajia10 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 TinyJimmy 的回复:]
没有用过,刚刚了解原来还有专门分析网页结构的东东.

http://www.yeeach.com/2008/05/19/htmlparser使用指南/
[/Quote]
UP
  • 打赏
  • 举报
回复
楼主参考一下这个博客
http://www.shoulai.cn/BBS_Topic/Topic_1174.html
TinyJimmy 2008-12-25
  • 打赏
  • 举报
回复
没有用过,刚刚了解原来还有专门分析网页结构的东东.

http://www.yeeach.com/2008/05/19/htmlparser使用指南/
zhouzhijian888 2008-12-25
  • 打赏
  • 举报
回复
一个是截取的 Div 一个是截取wml 的!~~ 没有 截取html 的?
我的url 是任意的 一个网址
lizhi1026 2008-12-25
  • 打赏
  • 举报
回复
晴转多云
7℃/ -2℃
微风
他抓的是这几个字。你看看咯,刚刚好,我也学习下
lizhi1026 2008-12-25
  • 打赏
  • 举报
回复
<div class="box_contenttodayinwea" id="c_1_1">
<p><span><a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank">
<img src="/m/i/icon_weather/42x30/d00.gif" /></a>  
<a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank">
<img src="/m/i/icon_weather/42x30/n01.gif" /></a>
</span>
<em><strong>晴转多云</strong></em>
<em class="no_today">7℃/ -2℃</em>
<em>微风</em><br/>
</p>

<dl class="right">
<dd><span>紫外线:弱<br />
洗车:适宜<br />
<img src="/m/i/twc/down.gif" /></span><em>气温趋势</em></dd>
<dd><span><br />
<br />
<img src="/m/i/twc/wind0.gif" /></span><em>今日风力</em></dd>
<dd><span>穿衣:凉<br />
舒适度:较舒适<br />
<img src="/m/i/twc/co1.gif" /></span><em>舒适指数</em></dd>
<dt><span></span></dt>
</dl>
</div>

注:红字部分,为要抓取部分 抓取代码如下:

Parser myParser = new Parser(resource); //resource:对应的url


String filterStr = "div";
NodeFilter filter = new TagNameFilter(filterStr);
NodeList nodeList = myParser.extractAllNodesThatMatch(filter);
String str = null;
for(int i = 0 ; i < nodeList.size() ; i ++)
{

Div div = (Div) nodeList.elementAt(i); // 遍历Div标签
String classV = div.getAttribute("id");

if (classV != null && divId.equals(classV)) { //dicId为产过来的一个参数,其值为:c_1_1
str = div.getChildrenHTML(); //找到对应的<div id="c_1_1">下的信息;
Parser myParserP = new Parser(str);
String filterStrP = "p"; // 这里析取得是标签为<P></P>中的信息
NodeFilter filterP = new TagNameFilter(filterStrP);// 过滤这个标签
NodeList nodeListP = myParserP.extractAllNodesThatMatch(filterP);// 抽取所有匹配的p列表

ParagraphTag pTag = (ParagraphTag) nodeListP.elementAt(0);//得到第一个<P></P>中的信息
String weather = pTag.toPlainTextString().trim();

Parser myParserImg = new Parser(str);
String filterStrImg = "img";// 这里析取得是标签为img的元素
NodeFilter filterImg = new TagNameFilter(filterStrImg);// 过滤这个标签
NodeList nodeListImg = myParserImg.extractAllNodesThatMatch(filterImg);// 抽取所有img信息

ImageTag image1 = (ImageTag) nodeListImg.elementAt(0); //图片一
ImageTag image2 = (ImageTag) nodeListImg.elementAt(1);
String imageUrl1 = image1.getImageURL(); //得到图片一的url
String imageUrl2 = image2.getImageURL();

List ls = new ArrayList();
ls.add(imageUrl1);
ls.add(imageUrl2);
ls.add(weather);

return ls;
}
}

网上帮你找的

81,094

社区成员

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

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