`
xiangxuehai_jiaer
  • 浏览: 92652 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

如何从网页上获取城市天气信息?

 
阅读更多
编写一段Java代码,从如下网站http://www.weather.com.cn/ 获得西安的天气信息:
package com.url;

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

public class Weather {

	public static void main(String[] args) {

		String weatherReturn = getWeatherInfo();

		//获得层div
		Pattern pattern = Pattern
				.compile("<div class=\"weatherYubaoBox\">.*?</div>");

		Matcher matcher = pattern.matcher(weatherReturn);

		String weatherTable = "";

		if (matcher.find()) {
			weatherTable = matcher.group();
		}

		//找表
		String weatherToday = "";
		
		if (!weatherTable.equals("") && weatherTable.length() > 0) {
			
			pattern = Pattern
					.compile("<table class=\"yuBaoTable\".*?>.*?</table>");
			matcher = pattern.matcher(weatherTable);
			
			if (matcher.find()) {
				weatherToday = matcher.group();
			}
		}

		pattern = Pattern.compile("<a.*?</a>");
		
		matcher = pattern.matcher(weatherToday);
		
		List<String> weatherList = new ArrayList<String>();
		while (matcher.find()) {
			
			weatherList.add(matcher.group());
			System.out.println(replaceTagA(matcher.group()));
			
		}
	}

	// 获取网页上的内容
	public static String getWeatherInfo() {

		URL url = null;
		InputStreamReader inReader = null;
		BufferedReader reader = null;
		
		try {

			// 建立一个url
			url = new URL("http://www.weather.com.cn/weather/101110101.shtml");

			// 打开一个流,并设置编码格式
			inReader = new InputStreamReader(url.openStream(), "utf-8");
			reader = new BufferedReader(inReader);

			StringBuffer sb = new StringBuffer();

			String inputLine;

			while ((inputLine = reader.readLine()) != null) {
				sb.append(inputLine);
			}
			
			return sb.toString();
		} catch (Exception e) {

			e.printStackTrace();
			
		} finally {
			// 关闭流
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (inReader != null) {
				try {
					inReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return null;
	}

	//从超连接中取数据
	public static String replaceTagA(String orginal) {
		
		List<String> resultList = new ArrayList<String>();
		
		if (orginal != null && !"".equals(orginal)) {

			Pattern pattern = Pattern.compile(">.*?<");
			Matcher matcher = pattern.matcher(orginal);
			while (matcher.find()) {
				String temp = matcher.group();
				temp = temp.replace('>', ' ');
				temp = temp.replace('<', ' ');
				resultList.add(temp.trim());
			}
		}
		StringBuffer result = new StringBuffer();
		for (String temp : resultList) {
			result.append(temp);
		}
		return result.toString().trim();
	}
}
 

 

    

分享到:
评论

相关推荐

    VB获取天气预报信息

    在VB(Visual Basic)中,可以通过WebBrowser控件来访问并解析网页上的数据,从而获取天气预报信息。下面详细介绍如何使用WebBrowser控件来实现这一功能。 ##### 1.1 添加WebBrowser控件 首先,在VB项目中添加...

    android demo,通过城市名称获取到天气预报

    这个Android Demo是关于如何利用城市名称来获取天气预报信息的应用示例。在开发Android应用程序时,获取天气数据通常涉及到网络请求、数据解析以及用户界面展示等多个环节。下面将详细讲解这个Demo涉及的关键知识点...

    获取城市天气

    【获取城市天气】是一个关于如何在网页中展示实时城市天气信息的教程,主要涉及JavaScript、AJAX以及服务器端Action的实现。以下是对这个主题的详细解释: 1. **JavaScript前端部分**: - 在`a.jsp`页面中,首先...

    JS 获取天气预报的网页

    标题 "JS 获取天气预报的网页" 指的是一个使用JavaScript编程语言编写的网页应用,其主要功能是获取并展示中国天气网(weather.cn)的天气预报信息。这个应用可能包含了一个动态的交互机制,允许用户选择不同的城市...

    java根据城市获取当天天气或一周天

    在Java编程中,获取某个...以上就是使用Java获取城市天气信息的基本步骤和涉及的技术点,实际开发中可能需要根据具体需求进行调整和优化。在实现过程中,学习和理解HTTP协议、JSON解析以及错误处理机制是非常重要的。

    用VC从网页抓取天气预报信息

    网页抓取,也称为网络抓取或Web刮取,是指通过程序自动化地从互联网上获取信息的过程。在VC中,我们可以利用WinInet库或者更高级的库如libcurl来实现这个功能。WinInet是微软提供的API,用于处理HTTP、HTTPS等协议,...

    通过ajax获取天气,城市编码见注释

    在本例中,我们使用的API是360天气开放接口,它提供了一个简单的方式来获取城市的实时天气信息。这些信息包括天气状况、温度、穿衣建议、感冒指数、空调指数、污染指数、洗车指数、运动指数、紫外线强度以及PM2.5等...

    STM32F767+lwip+freertos 通过网页API获取天气城市的数据(整个工程文件,有源代码,有注释)

    STM32F767+lwip+freertos 通过网页API获取天气城市的数据(整个工程文件,有源代码,有注释) 通过 2017.ip138.com/ic.asp 获得IP和地区 ip.ws.126.net/ipquery?ip=255.255.255.255 通过IP获得城市信息 ...

    C# 获取天气 天气 全国天气

    基本上 可以 获得任何地区的天气情况 外国有些地区还不能正常显示

    在网页上动态显示天气预报

    标题中的“在网页上动态显示天气预报”是一个关于Web开发的话题,主要涉及到如何在网站上实时展示天气信息。这通常需要结合API(应用程序接口)来获取数据,再通过JavaScript或其他前端技术来处理并呈现这些数据。 ...

    Android根据城市中文名称获取天气信息

    最后,将解析得到的天气信息展示给用户,可能是在一个自定义的天气卡片视图上,或者直接更新到应用的UI组件,如TextView、ImageView等。确保在主线程之外处理网络请求和数据解析,以避免阻塞用户界面。 总之,实现...

    网页上的天气预报js代码

    ### 知识点四:IP定位获取城市信息 该脚本首先尝试通过用户的IP地址来确定其所在城市,从而获取对应城市的天气信息。 #### IP定位 - **定义**:通过分析用户IP地址来确定地理位置的过程。 - **应用场景**:自动...

    asp.net调用百度天气ApI获取天气

    在上述代码中,我们创建了一个`WeatherService`类,其中`GetWeatherAsync`方法用于获取指定城市的天气信息。我们使用HttpClient发送GET请求到API地址,并附带必要的参数(城市名和API密钥)。成功获取到响应后,我们...

    天气预报 小偷程序 使用三层架构 从别的网站网页 动态获取 天气数据

    在描述中提到的“动态获取天气数据”,意味着程序不是静态地存储数据,而是每次运行时都会实时从网络获取最新的信息。这增加了程序的灵活性,但同时也可能带来性能和稳定性方面的挑战,因为网络状况和目标网站的结构...

    可以直接通过请求判断你iP地址获取你所在城市天气

    标题中的“可以直接通过请求判断你iP地址获取你所在城市天气”指的是利用网络服务接口,通过用户的IP地址来确定用户所在的城市,进而提供该城市的实时天气信息。这种技术基于IP定位,结合天气API来实现。 描述中...

    网上天气预报。通过提取天气预报网站的网页代码,来获取数据,实现对全国各个省会城市的天气预报.zip

    本项目涉及的知识点主要集中在利用C#编程语言和网络爬虫技术来获取并解析天气预报网站的HTML网页代码,从而实现对全国省会城市天气预报的实时获取。下面将详细介绍这些关键技术和步骤。 1. **C#编程语言**: C#是由...

    JSON获取天气源码

    5. **显示数据**:将解析后的天气数据渲染到网页上,可以是动态更新的图表、文字信息或者其他可视化元素。 这个"JSON获取天气源码"项目对于学习如何使用JavaScript与Web API交互,以及如何处理和显示JSON数据是一个...

    从新浪服务器获得天气情况的天气预报

    在本文中,我们将深入探讨如何从新浪服务器获取天气预报数据,并构建一个简单的天气预报应用。首先,我们需要理解天气预报服务的基本工作原理以及如何通过网络接口与之交互。 天气预报服务通常由各大气象机构提供,...

    js 获取天气预报

    在这些文件中,我们可以通过创建DOM元素并动态更新其内容来显示从API获取的天气信息。例如: ```html &lt;div id="temperature"&gt;&lt;/div&gt; &lt;div id="humidity"&gt;&lt;/div&gt; &lt;div id="windSpeed"&gt;&lt;/div&gt; ``` 对应的JS代码可以...

    基于Python获取城市近7天天气预报

    这篇文章主要介绍了基于Python获取城市近7天天气预报,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先,我们打开中国天气网,找到黄石市近7天天气的网页。 ...

Global site tag (gtag.js) - Google Analytics