Java编写Baidu关键词工具

本文介绍了一款使用Java开发的百度关键词抽取工具,该工具能够抓取并解析百度风云榜的内容,通过网络输入流读取数据,利用正则表达式进行内容解析,并以表格形式展示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天写了一个《Java抽取HTML内容》的文章,路径是[url]http://javapub.iteye.com/blog/719658[/url]。在此基础上做了一个Baidu的关键词抽取工具。可以抽取和查询百度的风云榜。这里也是在尝试着去开发一个Java的搜索引擎(大家见笑了),首先从关键词排名入手吧。界面如图:[img]http://www.kutoku.info/images/java/100726/ztop.png[/img]

原理也不难,
[b]1.从网络定位输入流,并读取这个输入流。[/b]

URL url = new URL(urlPath);
// 以特定格式读取文件流。
InputStreamReader isr = new InputStreamReader(url.openStream(),
"gb2312");
BufferedReader br = new BufferedReader(isr);

这里我们读取的是baidu的输入流,自然用bgb2312格式,以后可以做的更加智能一些,自动判断流的格式。

[b]2.定位内容[/b]
这里我们是定位baidu风云榜的内容,所以比较准确,以后更加复杂的搜索引擎定位算法,那是以后考虑的事情了。

if ("".equals(s.trim())) {
continue;
} else if ("<tbody id=\"listdata\">".equals(s.trim())) {
beginFind = true;
} else if ("</tbody>".equals(s.trim())) {
break;
}


[b]3.解析内容[/b]
利用正则表达式删除我们关心的内容中的所有标签,留下内容。
private static String findContent(String html) {
// 配置html标记。
Pattern p = Pattern.compile("<(\\S*?)[^>]*>.*?| <.*? />");
Matcher m = p.matcher(html);

String rs = new String(html);
// 找出所有html标记。
while (m.find()) {
// 删除html标记。
rs = rs.replace(m.group(), "");
}
return rs;
}


[b]4. 展示内容[/b]
根据我们得到的内容,用表格的形式展示,表格的形式是挺好看,但不好保存,这点随后的版本会考虑保存的问题,现在就先这样吧。这里用到了我以前写的一个JTable的jar包,可以方便的生成一个可以自动排序的JTable。
tableOp = new DefaultZTableFactory();
// 设置table信息生成Table。
tableOp.setTableInfors(tableHeader, tableBody, colWidth);
// 得到Table。
ztable = tableOp.getZTable();
// 设置Table的样式, 隔行变色。
tableOp.setTableStyle(ztable);


[b]5. 附件是源码和打包好的EXE文件,欢迎大家交流。[/b]

[b]6. 相关内容[/b]
《Eclipse 打第三方Jar包 插件 net.sf.fjep.fatjar》[url]http://javapub.iteye.com/blog/712695[/url],将第三方的Jar包,打入我们自己的Jar包中。
《Eclipse 将Jar包打成Exe运行 exe4j》[url]http://javapub.iteye.com/blog/712729[/url],将一个Jar包打成EXE文件。
《Swing JTable工厂(table4j)》[url]http://javapub.iteye.com/blog/686157[/url],一个JTable工厂,生成自动排序,隔行变色的JTable,并可以线程安全的操作JTable的增删改查。

文章地址:[url]http://javapub.iteye.com/blog/721465[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值