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

java抓取天气预报数据

阅读更多

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

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

Java代码  收藏代码
  1. package  rssTest;  
  2.   
  3. import  java.io.BufferedReader;  
  4. import  java.io.IOException;  
  5. import  java.io.InputStreamReader;  
  6. import  java.net.HttpURLConnection;  
  7. import  java.net.MalformedURLException;  
  8. import  java.net.URL;  
  9. import  java.net.URLConnection;  
  10. import  java.util.ArrayList;  
  11. import  java.util.List;  
  12. import  java.util.regex.Matcher;  
  13. import  java.util.regex.Pattern;  
  14.   
  15. /**  
  16.  * @author Der  
  17.  * @date   05-01  
  18.  * @E-mail uidin@163.com  
  19.  * */   
  20. public   class  MyRSS  
  21. {  
  22.     /**  
  23.      * 获取搜索结果的html源码  
  24.      * */   
  25.     public   static  String getHtmlSource(String url)  
  26.     {  
  27.           
  28.         StringBuffer codeBuffer = null ;  
  29.         BufferedReader in=null ;  
  30.         try   
  31.         {  
  32.             URLConnection uc = new  URL(url).openConnection();  
  33.   
  34.             /**  
  35.              * 为了限制客户端不通过网页直接读取网页内容,就限制只能从浏览器提交请求.  
  36.              * 但是我们可以通过修改http头的User-Agent来伪装,这个代码就是这个作用  
  37.              *   
  38.              */   
  39.             uc.setRequestProperty("User-Agent" ,  
  40.                     "Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)" );  
  41.   
  42.             // 读取url流内容   
  43.             in = new  BufferedReader( new  InputStreamReader(uc  
  44.                     .getInputStream(), "gb2312" ));  
  45.             codeBuffer = new  StringBuffer();  
  46.             String tempCode = "" ;  
  47.             // 把buffer内的值读取出来,保存到code中   
  48.             while  ((tempCode = in.readLine()) !=  null )  
  49.             {  
  50.                 codeBuffer.append(tempCode).append("\n" );  
  51.             }  
  52.             in.close();  
  53.         }  
  54.         catch  (MalformedURLException e)  
  55.         {  
  56.             e.printStackTrace();  
  57.         }  
  58.         catch  (IOException e)  
  59.         {  
  60.             e.printStackTrace();  
  61.         }  
  62.           
  63.         return  codeBuffer.toString();  
  64.     }  
  65.   
  66.     /**  
  67.      * 正则表达式  
  68.      * */   
  69.     public   static  String regex()  
  70.     {  
  71.         String googleRegex = "<div class=g>(.*?)href=\"(.*?)\"(.*?)\">(.*?)</a>(.*?)<div class=std>(.*?)<br>" ;  
  72.         return  googleRegex;  
  73.     }  
  74.   
  75.     /**  
  76.      * 测试用  
  77.      * 在google中检索关键字,并抽取自己想要的内容  
  78.      *   
  79.      * */   
  80.     public   static  List<String> GetNews()  
  81.     {  
  82.         List<String> newsList = new  ArrayList<String>();  
  83.         String allHtmlSource = MyRSS  
  84.                 .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" );  
  85.         Pattern pattern = Pattern.compile(regex());  
  86.         Matcher matcher = pattern.matcher(allHtmlSource);  
  87.   
  88.         while  (matcher.find())  
  89.         {  
  90.             String urlLink = matcher.group(2 );  
  91.             String title = matcher.group(4 );  
  92.             title = title.replaceAll("<font color=CC0033>" "" );  
  93.             title = title.replaceAll("</font>" "" );  
  94.             title = title.replaceAll("<b>...</b>" "" );  
  95.   
  96.             String content = matcher.group(6 );  
  97.             content = content.replaceAll("<font color=CC0033>" "" );  
  98.             content = content.replaceAll("</font>" "" );  
  99.             content = content.replaceAll("<b>...</b>" "" );  
  100.   
  101.             newsList.add(urlLink);  
  102.             newsList.add(title);  
  103.             newsList.add(content);  
  104.         }  
  105.         return  newsList;  
  106.     }  
  107.   
  108.     /**  
  109.      * main方法  
  110.      * */   
  111.     public   static   void  main(String[] args)  
  112.     {  
  113.         System.out  
  114.         .println(MyRSS  
  115.                 .getHtmlSource("http://main.house.sina.com.cn/news/zckb/index.html" ));  
  116.     }  

分享到:
评论
1 楼 hehongwei44 2012-05-17  
不错  谢谢

相关推荐

    jsp网页抓取天气预报源代码

    "jsp网页抓取天气预报源代码" 这个标题表明这是一个与Java Server Pages(JSP)相关的项目,目标是实现从网页上抓取天气预报信息的功能。JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码来处理服务器端...

    获取天气预报API,免费接口,项目下载可运行,Java实现

    通过这个项目,开发者不仅可以学习到Java和Spring Boot的基本知识,还能深入理解API的使用、数据抓取的技巧,以及如何设计和实现一个完整的天气预报系统。这为个人技能提升或构建实际项目提供了宝贵的实践机会。

    java获取天气预报

    在Java编程中,获取实时天气预报是一项常见的任务,可以用于各种应用程序,如智能家居系统、出行助手等。本篇将深入探讨两种实现方式:通过HTTP客户端请求API接口获取XML数据以及利用HTMLUnit解析网页源码抓取天气...

    纯JAVA中国天气网天气预报抓取解析存MYSQL程序(原创)

    将中国天气网近六天(因为有些城市提供的接口只有五天数据,所以我暂时取5天,程序里依然是六天的标准)的天气情况抓取,用JSON解析,存入数据库,数据库是两张表,城市表和天气表。程序可以运行,两个表都能读入...

    Java天气应用程序 - 使用天气API获取实时天气数据并显示给用户

    在开发Java天气应用程序时,首先需要理解项目的目标和主要步骤。该项目的核心是通过与天气API交互,获取实时的天气信息,并在用户界面中展示。在这个过程中,我们将涉及到以下几个关键技术点: 1. **网络请求**: ...

    Rss全国各省市天气预报

    在本项目中,开发者通过网络接口抓取了全国各省市的天气预报数据,这些数据通常是以RSS feed的形式提供的。RSS feed包含了一系列条目,每一条目代表一个特定地区的天气信息,包括日期、温度、湿度、风向风速等。为了...

    公司天气预报前后台源码(原创)JAVA MYSQL

    公司天气预报前后台源码(原创)JAVA MYSQL,由于各种变动,这个项目可能不会发行了。但是ANDROID和我做的后台都完成了。代码放在这里,这也是我毕业以来用了3个月时间做的第一个项目。以后有空把手机端的源码和APK...

    通过Java获取Google的简单天气预报

    本文将详细介绍如何使用Java编程语言来抓取Google提供的简单天气预报信息。该示例代码主要涉及到以下几个关键概念和技术点: 1. **网络请求处理**:使用`java.net.URL`类发起HTTP请求,并通过`InputStream`读取响应...

    天气预报的release程序以及天气代码

    同时,“我写的一个获取天气的类”说明程序中包含了一个自定义的类,该类负责从网络或者其他数据源抓取天气数据。在编程中,类是一种数据结构,它封装了相关数据和操作这些数据的方法,这里用于获取天气信息,可能是...

    Android简单的天气预报

    在Android平台上开发一个简单的天气预报应用,涉及到许多关键的技术点,包括网络请求、JSON解析、UI设计以及数据存储。以下是对这些技术的详细说明: 1. **网络请求**:为了获取天气信息,开发者通常需要从远程...

    天气预报收集java爬虫.zip

    标题中的“天气预报收集java爬虫.zip”表明这是一个使用Java编程语言编写的爬虫程序,其目的是抓取并收集从2011年至2020年的全国各省市的详细天气数据。这个程序可能涉及了网络请求、HTML解析、数据提取、数据存储等...

    Java控制台应用: 天气预报系统的实现

    内容概要:介绍了利用Java开发的一款简单级别的控制台天气预报应用程序的架构和部分实现代码。该程序主要功能是允许输入城市名并通过访问外部API接口获得相应城市的当前气候数据,如温湿度以及空气流速等。 适用人群...

    天气预报Web Services

    【标题】"天气预报Web Services" 是一个基于Web服务的技术实现,它允许应用程序通过网络请求获取天气预报数据。Web服务通常使用SOAP(简单对象访问协议)或REST(Representational State Transfer)架构,使得不同...

    Portlet天气预报

    在Portlet天气预报中,HTMLParser可能被用来从天气预报网站抓取实时数据。通过解析网页内容,提取出温度、湿度、风力等天气信息,然后以用户友好的方式展示在Portlet上。这种方式通常被称为网络爬虫或网页抓取,是...

    javaGetWeather.zip_天气_天气信息获取_天气预报

    本项目"javaGetWeather.zip"就是这样一个实例,它通过正则表达式从网页中抓取并解析天气预报数据。下面我们将深入探讨这个主题。 首先,我们来理解"javaGetWeather.zip"的核心功能。这个压缩包包含了一个名为...

    基于Htmlparser的天气预报程序

    总的来说,基于Htmlparser的天气预报程序是利用Java技术和Htmlparser库实现的Web抓取应用,能够从网上获取并解析天气预报信息,为用户提供便捷的城市天气查询服务。它涉及到网络通信、HTML解析、数据结构化和用户...

    天气预报代码

    1. **源代码文件**:如`.py`(Python)、`.java`(Java)、`.js`(JavaScript)等,包含了实现天气预报功能的程序逻辑。 2. **配置文件**:如`.json`或`.xml`,用于存储API密钥、设置等信息。 3. **数据文件**:可能...

    天气预报.rar

    标题中的“天气预报.rar”表明这是一个与天气预报相关的压缩文件,可能包含用于开发或分析天气预报应用的资源和数据。描述中的关键词“制作天气”暗示可能有代码或工具用于生成天气相关的数据或可视化,“获取天气”...

    默飞天气预报采集程序

    【标题】"默飞天气预报采集程序"是一个用于获取天气预报数据的应用程序,可能是通过编程方式从各种天气预报API或网站抓取数据。这个程序可能适用于个人或企业,帮助他们集成到自己的网页或其他应用程序中,提供实时...

Global site tag (gtag.js) - Google Analytics