Java编写Baidu关键词工具

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

原理也不难,
1.从网络定位输入流,并读取这个输入流。
URL url = new URL(urlPath);
		// 以特定格式读取文件流。
InputStreamReader isr = new InputStreamReader(url.openStream(),
				"gb2312");
BufferedReader br = new BufferedReader(isr);

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

2.定位内容
这里我们是定位baidu风云榜的内容,所以比较准确,以后更加复杂的搜索引擎定位算法,那是以后考虑的事情了。
if ("".equals(s.trim())) {
				continue;
			} else if ("<tbody id=\"listdata\">".equals(s.trim())) {
				beginFind = true;
			} else if ("</tbody>".equals(s.trim())) {
				break;
			}


3.解析内容
利用正则表达式删除我们关心的内容中的所有标签,留下内容。
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;
	}


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


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

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

文章地址: http://javapub.iteye.com/blog/721465

你可能感兴趣的:(java,eclipse,搜索引擎,正则表达式,百度)