`
北京阿龙
  • 浏览: 2105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

htmlparser解析网页代码实现网站自动抓取新闻并定时更新

    博客分类:
  • java
阅读更多
  参加工作快有两年了,一直都是从网上谷歌人家的经验,这次也把自己的开发经验写下来与别人分享下。刚不久,换了一份新工作,新的公司在刚结束了一个网站。网站的新闻内容都是自己编辑添加上去的,全手动的,于是接受任务,做个自动更新新闻内容的功能。
  开始整理思路,第一步通过网站URL得到整个网站新闻链接所有的URL,第二步把得到的URL返回它的源代码,第三步解析出源代码里的内容和标题,第四步存入数据库。最后使用java定时器定时自动更新。
  过程中最棘手的是解析HTML源码,果断决定使用htmlparser,废话少说,上一部分代码。代码部分注释,写的不好,还请指教。
	/**
	 * 返回网页中所有URL
	 * @return type:NodeList
	 */
	public static NodeList getAllUrl(String Url) throws Exception {

		//使用htmlparser获取
		Parser parser = new Parser();
		parser.setResource(Url);
		//待定的编码格式
		parser.setEncoding("gbk");
		//遍历所有节点 自定义内部类(自定义过滤器)
		NodeList nodeList = parser.extractAllNodesThatMatch(new NodeFilter() {
			private static final long serialVersionUID = 1L;

			public boolean accept(Node node) {
				//判断node是否是LinkTag的一个实例
				if (node instanceof LinkTag)
					return true;
				else{
					return false;
			}
			}
		});
		return nodeList;
	}

	
	/*
	 * 返回新闻内容
	 */
	public static String getContent(String urlpath){
		Parser parser = new Parser();
		String content = "";
		try {
			parser.setResource(urlpath);//传入url
			NodeFilter divFilter = new NodeClassFilter(Div.class);//自定义过滤器
			NodeList divlist = parser.parse(divFilter);//加载过滤器			
			for(int i=0;i<divlist.size();i++){	
				Node node = divlist.elementAt(i);	//遍历所有div标签
				if (node.getText().toString().equals("div id='zoom'")){
					content = node.toPlainTextString();	//得到指定div内容				
				};
			}
		} catch (ParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return content;
	}
}
	/*
	 *返回新闻title
	 * 
	 */
	public static String getTitle(String urlpath)throws Exception{
		Parser parser = new Parser();
		parser.setResource(urlpath);
		parser.setEncoding("gbk");
		NodeFilter titleFilter = new NodeClassFilter(TitleTag.class);
		NodeList titleList = parser.parse(titleFilter);
		String title = "";
		for (int i = 0; i < titleList.size(); i++) {
			Node node = titleList.elementAt(i);
			if (node instanceof TitleTag) {
				TitleTag titleTage = (TitleTag) node;
				title = titleTage.getStringText();
			}
		}
		return title;
	}

定时器在这就不写了,相信大家都能搞定。希望跟大家能共同交流学习哈!
分享到:
评论

相关推荐

    htmlparser实现网页上抓取数据

    首先,使用Request发送GET请求获取网页HTML,然后通过HTMLParser解析HTML,提取所需数据。这个过程可以封装为一个函数或类,以便在不同网页中重复使用。 6. **注意事项和优化**: 使用HTMLParser需要注意HTML的不...

    java利用htmlparser抓取网页数据

    总之,Java利用HTMLParser库可以有效地抓取和解析网页数据,为数据分析、信息监控等任务提供便利。通过不断学习和实践,你可以掌握更多高级技巧,实现更复杂的功能。记得在使用过程中遵守互联网道德,尊重网站的...

    htmlparser抓取网页内容

    在IT领域,网页抓取是一项基础且重要的技术,它允许我们从互联网上自动获取大量信息。HTMLParser是Python中一个常用的库,用于解析HTML和XML文档。本项目以"htmlparser抓取网页内容"为主题,具体实践了如何利用...

    htmlparser实现从网页上抓取数据.pdf

    在"htmlparser实现从网页上抓取数据.pdf"这份文档中,可能会详细讲解如何使用HTMLParser来高效、准确地抓取网页上的目标数据。 1. **HTMLParser简介**:HTMLParser是一个轻量级的解析器,它能够解析HTML文档并将其...

    htmlparser实现从网页上抓取数据.doc

    本文将详细讲解如何使用Java的htmlparser库实现网页抓取,并探讨其核心概念和用法。 首先,从给定的代码示例中可以看出,这是一个简单的Java程序,用于从指定的URL抓取HTML内容并将其保存到本地文件。这个程序的...

    Htmlparser 网页内容抓取java

    例如,你可以使用HTMLParser解析整个网页,然后通过XPath找到特定的元素,如所有的链接(`&lt;a&gt;`标签)。这在进行网络爬虫开发时非常有用,可以提取出网页中的所有链接,进行进一步的分析或者访问。 HTMLParser库还...

    基于htmlparser的网页爬虫和java调用excel代码

    本项目就是利用HTMLParser库来编写一个基础的网页爬虫,用于爬取新浪新闻的数据,并将抓取到的数据存储到Excel表格中。以下是关于这个项目的一些关键知识点和实现细节: 1. **HTMLParser库**:HTMLParser是一个开源...

    htmlparser实现从网页上抓取数据doc

    在提供的代码示例中,`ScrubSelectedWeb` 类展示了如何使用HTMLParser库来从指定的URL抓取网页内容并将其保存到本地文件。以下是一些关键点的详细说明: 1. **URL对象**:首先创建一个`URL`对象,它代表要抓取的...

    HtmlParser提取网页信息的设计与实现

    首先,使用HtmlParser解析主页的HTML代码,然后查找所有的`&lt;a&gt;`标签,提取其中的`href`属性值以及相邻的文本节点作为新闻标题。接着,对提取到的链接进行清洗,最后将清洗后的数据存储到SQL数据库中。 ##### 4.1 ...

    htmlparser实现从网页上抓取数据(+例子)

    本教程将通过实例来讲解如何使用HTMLParser从网页上抓取数据,并简要提及Java解析XML的方法。 首先,我们需要了解HTMLParser的基本工作原理。HTMLParser遵循事件驱动的模型,它会逐行读取HTML源代码,遇到特定的...

    HTMLParser.net源代码HTMLParser.net使用demo

    1. **源代码**:HTMLParser.net的C#源代码,开发者可以查看并学习其内部实现机制。 2. **示例项目**:一个或多个使用HTMLParser.net的示例应用程序,展示了如何导入库、初始化解析器、执行查询和处理HTML元素。 3. *...

    c#版htmlparser htmlparser.dll htmlparser源代码

    在.NET环境中,开发者经常需要处理HTML数据,例如从网页抓取信息或者进行网页自动化。HTMLParser库提供了便捷的方式来解析复杂的HTML结构,提取所需的数据,而无需关心底层的DOM操作细节。 `htmlparser.dll`是这个...

    HtmlParser2003源代码

    这个源代码项目提供了一种高效且灵活的方式来自动化处理网页数据,尤其适用于那些需要从大量网页中抓取特定信息的任务,例如网络爬虫或者数据分析。 在HTMLParser2003中,核心功能围绕着解析HTML的机制展开。HTML...

    新闻自动抓取类【asp.net】

    【新闻自动抓取类在ASP.NET中的实现】 在ASP.NET框架中,开发新闻自动抓取类是一项常见的任务,尤其对于构建新闻聚合网站或者数据分析平台至关重要。这类应用的主要目的是从目标网站上获取最新的文章内容,通过解析...

    htmlparser抓取论坛帖子内容的代码

    将HTMLParser与HTTP客户端库(如Apache HttpClient或OkHttp)结合,可以实现完整的网络爬虫功能,自动下载页面并进行解析。 总结,HTMLParser是一个强大的Java库,适用于解析HTML文档并从中提取信息。通过创建...

    htmlparser网页分析

    5. 应用场景:HTMLParser适用于数据抓取、网页自动化测试、内容过滤等多种场景。比如,你可以使用它来提取网页上的特定数据,如价格、评论、链接等;也可以用于验证网页的结构是否符合预期,或者在不影响页面展示的...

    HtmlParser 网页分解dll

    HtmlParser是一个用于网页抓取和解析的库,它能够帮助开发者高效地提取HTML文档中的信息并将其转换为结构化的XML格式。在Web开发中,这样的工具对于数据挖掘、搜索引擎优化(SEO)、网络爬虫和自动化信息处理至关...

Global site tag (gtag.js) - Google Analytics