`

java抓取新闻

    博客分类:
  • java
阅读更多
这个东西虽然简单,但还是挺好玩的:首先把搜索后的页面用流读取出来,再写个正则,去除不要的内容,再把最后的结果存成xml格式文件、或者直接存入数据库,用的时候再调用

本代码只是显示html也的源码内容,如果需要抽取内容请自行改写public static String regex()中的正则式


package rssTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Der
 * @date   05-01
 * @E-mail uidin@163.com
 * */
public class MyRSS
{
	/**
	 * 获取搜索结果的html源码
	 * */
	public static String getHtmlSource(String url)
	{
		
		StringBuffer codeBuffer = null;
		BufferedReader in=null;
		try
		{
			URLConnection uc = new URL(url).openConnection();

			/**
			 * 为了限制客户端不通过网页直接读取网页内容,就限制只能从浏览器提交请求.
			 * 但是我们可以通过修改http头的User-Agent来伪装,这个代码就是这个作用
			 * 
			 */
			uc.setRequestProperty("User-Agent",
					"Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)");

			// 读取url流内容
			in = new BufferedReader(new InputStreamReader(uc
					.getInputStream(), "gb2312"));
			codeBuffer = new StringBuffer();
			String tempCode = "";
			// 把buffer内的值读取出来,保存到code中
			while ((tempCode = in.readLine()) != null)
			{
				codeBuffer.append(tempCode).append("\n");
			}
			in.close();
		}
		catch (MalformedURLException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
		return codeBuffer.toString();
	}

	/**
	 * 正则表达式
	 * */
	public static String regex()
	{
		String googleRegex = "<div class=g>(.*?)href=\"(.*?)\"(.*?)\">(.*?)</a>(.*?)<div class=std>(.*?)<br>";
		return googleRegex;
	}

	/**
	 * 测试用
	 * 在google中检索关键字,并抽取自己想要的内容
	 * 
	 * */
	public static List<String> GetNews()
	{
		List<String> newsList = new ArrayList<String>();
		String allHtmlSource = MyRSS
				.getHtmlSource("http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&client=aff-os-maxthon&hs=SUZ&q=%E8%A7%81%E9%BE%99%E5%8D%B8%E7%94%B2&meta=&aq=f");
		Pattern pattern = Pattern.compile(regex());
		Matcher matcher = pattern.matcher(allHtmlSource);

		while (matcher.find())
		{
			String urlLink = matcher.group(2);
			String title = matcher.group(4);
			title = title.replaceAll("<font color=CC0033>", "");
			title = title.replaceAll("</font>", "");
			title = title.replaceAll("<b>...</b>", "");

			String content = matcher.group(6);
			content = content.replaceAll("<font color=CC0033>", "");
			content = content.replaceAll("</font>", "");
			content = content.replaceAll("<b>...</b>", "");

			newsList.add(urlLink);
			newsList.add(title);
			newsList.add(content);
		}
		return newsList;
	}

	/**
	 * main方法
	 * */
	public static void main(String[] args)
	{
		System.out
		.println(MyRSS
				.getHtmlSource("http://main.house.sina.com.cn/news/zckb/index.html"));
	}
}

分享到:
评论

相关推荐

    java抓取新闻 抓新闻 抓网站新闻

    在提供的压缩包中,"抓取新闻.jar"文件很可能是一个包含了网络爬虫代码的可执行文件。为了运行这个程序,你需要将它添加到你的系统环境变量中,这样你可以在命令行直接启动它。如果遇到批处理文件的问题,可能是因为...

    java新闻抓取

    【Java新闻抓取】是一种利用编程技术从网络上自动收集并处理特定信息的过程,这里主要关注的是使用Java语言来实现对腾讯IT业界滚动新闻的抓取。在IT领域,新闻抓取是数据挖掘的重要组成部分,它能帮助我们获取实时、...

    java 新浪网易搜狐新闻抓取源码

    总结,"java 新浪网易搜狐新闻抓取源码"项目展示了如何使用Java和HTMLParser库来实现新闻数据的抓取和处理。通过学习和实践这样的项目,开发者不仅可以掌握网页抓取的基本技能,还能深入理解HTTP协议、HTML解析以及...

    java根据json规则抓取(新浪新闻、百度新闻、微博动态)的网页内容源码

    java根据自定义json格式规则抓取新浪新闻、百度新闻、微博动态内容的网络爬虫源码 例子中的源码功能: 导入Hbase的jar包即可直接返回Put对象数据、可以返回map对象数据、支持自定义json格式抓取指定网页的内容、抓取...

    java新闻抓取程序代码

    - **getNewList() 方法**:负责抓取新闻列表。 - **getNewInfo(String url) 方法**:根据传入的新闻详情页 URL 抓取具体的新闻内容。 ### 2. 使用 URL 和 URLConnection 进行网络请求 为了获取网页内容,程序使用...

    java爬虫抓取新闻.zip

    在这个“java爬虫抓取新闻.zip”压缩包中,包含了一个名为“爬虫”的可能为源代码的文件以及一个“1.accdb”数据库文件,这可能是用来存储爬取到的新闻数据。 首先,让我们详细了解一下Java爬虫的基本概念。Java...

    Java网页抓取数据

    Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...

    基于Java的新闻推荐系统设计与实现

    数据采集负责从各种新闻源抓取信息;数据处理涉及清洗、去重和存储,可能需要用到Java的Hadoop或Spark等大数据处理框架;推荐算法模块是核心,通过Java实现各种推荐策略;用户界面则需用JavaFX或Swing等工具提供友好...

    java抓取网站数据[参考].pdf

    ### Java抓取网站数据知识点详解 #### 一、概述 在现代互联网开发中,抓取网站数据是一项重要的技能。无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是极其有用的。本文将以抓取“51job...

    抓取财经新闻

    在IT行业中,数据抓取是一项重要的技能,尤其在财经领域,实时、全面的财经新闻数据对于分析市场趋势、制定投资策略具有重大价值。本话题将详细介绍如何使用WebCollector这一工具来抓取财经新闻。 WebCollector是一...

    计划任务实时抓取新闻

    在IT行业中,"计划任务实时抓取新闻"是一个常见的需求,尤其对于数据分析、信息监控或者新闻聚合类应用来说,这是非常关键的技术环节。下面将详细解释这个过程涉及的知识点。 首先,我们需要理解“计划任务”...

    java做的抓取sohu所有的新闻

    在本项目中,标题"java做的抓取sohu所有的新闻"揭示了主要的技术焦点是使用Java编程语言来实现网络爬虫,目标是抓取搜狐网站上的所有新闻信息。网络爬虫,也称为网页抓取器,是一种自动化程序,用于浏览互联网并收集...

    抓取新浪新闻文章

    在IT行业中,数据抓取是一项基础且重要的技能,特别是在新闻分析、舆情监控等领域。本案例主要涉及的是如何抓取新浪新闻网站的文章,这通常需要利用网络爬虫技术。新浪新闻作为一个大型的新闻发布平台,提供了丰富的...

    Java实现网路爬虫爬取新闻信息

    本项目"Java实现网路爬虫爬取新闻信息"是利用Java编程语言来构建一个能够从指定网站抓取新闻内容的爬虫。在这个过程中,我们不仅需要掌握Java基础,还需要理解网络请求、HTML解析、正则表达式以及数据库操作等技术。...

    Boss直聘Java爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    java新闻推荐系统.rar

    Java中的Jsoup、WebMagic等库可以帮助抓取网页内容。爬虫首先定位到新闻网站,然后解析HTML结构,提取新闻标题、内容、发布时间等信息,最后将这些信息存储到数据库中供推荐系统使用。 总的架构分为四个主要部分:...

    ifeng新闻抓取

    这个案例采用的是Java语言,说明了在信息技术领域,如何利用编程手段抓取网络上的动态信息,尤其是新闻类数据。 描述中提到的“java例子 实测 可运行”,表明这是一个实际可用的Java代码示例,已经过测试并能够成功...

    基于http的Java爬虫爬取百度新闻

    在本项目中,“基于http的Java爬虫爬取百度新闻”是一个实例,它利用Java编程语言,通过HTTP协议来抓取百度新闻网站上的数据。这个项目的核心知识点包括HTTP协议的理解、Java编程基础、网络爬虫的实现以及对百度新闻...

    获取新闻java程序

    本项目名为“获取新闻Java程序”,其主要目标是利用Java技术来抓取并处理实时的新闻数据,包括新闻标题、链接以及其他相关信息,以便用户能够方便地查看和交互这些动态新闻信息。 在实现这个功能时,Java程序员通常...

Global site tag (gtag.js) - Google Analytics