天气预报 正则获取指数信息 group(0)指数 group(1)概要 group(2)详细指数 代码-阿里云开发者社区

开发者社区> 广贤> 正文

天气预报 正则获取指数信息 group(0)指数 group(1)概要 group(2)详细指数 代码

简介:
+关注继续查看

如果出现正则内容出现东西过多,再增加一个(),group一下


完全原创,呕心沥血呀

package com.zzk.cn;
import java.awt.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestSun {
	public static void main(String[] args) {
		URL url = null;
		URLConnection conn = null;
		InputStream in = null;
		InputStreamReader isr = null;
		BufferedReader br = null;
		try {
			url = new URL("http://www.weather.com.cn/weather/101010100.shtml");
			conn = url.openConnection();
			in = conn.getInputStream();
			isr = new InputStreamReader(in,"utf8");
			br = new BufferedReader(isr);
			String line = "";
			String info="";
			while (null != (line = br.readLine())) {
				//System.out.println(line);
				info+=line;
			}
		
			//System.out.println(info);
			Pattern p=Pattern.compile("div\\sclass=.weatherTopright.*?</div>");//正则获取网页大致信息

			Matcher m=p.matcher(info);
			String s1="";
	    	while(m.find()) {
	    		s1=m.group();
	    		//System.out.println(s1);
	    	}
	    	
	    	String s2="";
	        Pattern p1=Pattern.compile("bold;.>(\\d+):(\\d+)</strong>");//正则获取网页日出日落信息
	    	//Pattern p1=Pattern.compile("<(/?\\s?br\\b)>");
	    	Matcher m1=p1.matcher(s1);
	    	//System.out.println(s1);
	    	ArrayList<String> a = new ArrayList<String>();
	    	while(m1.find()) {
	    		//m1.group(1);
	    	    String s=m1.group(1);
	    	    String s0=m1.group(2);
	    	    String result = s+":"+s0;
	    	    a.add(result);
	    	}
	    	System.out.println(a.get(0));
	    	System.out.println(a.get(1));
//	    	System.out.println(a.get(2));
//	    	System.out.println(a.get(3));
	    	
	    	Pattern p2=Pattern.compile("div\\sclass=.todayLiving.*?</div>");//正则获取网页大致信息

			Matcher n=p2.matcher(info);
			String t1="";
	    	while(n.find()) {
	    		t1=n.group();
	    		//System.out.println(t1);
	    	}
	    	

	    	String t2="";
	        Pattern p3=Pattern.compile("<blockquote>\\s(.*?)\\s</blockquote>");//正则获取网页日出日落信息
	    	//Pattern p1=Pattern.compile("<(/?\\s?br\\b)>");
	        ArrayList<String> b = new ArrayList<String>();
	    	Matcher n1=p3.matcher(t1);
	    	while(n1.find()) {
	    		t2=n1.group();
	    		//System.out.println(n1.group());
	    		String detail=t2;
	    		b.add(detail);
	    	}
	    	String guoming=b.get(0).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String wuran=b.get(1).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String ganmao=b.get(2).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String ziwaixian=b.get(3).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String chuanyi=b.get(4).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String shushi=b.get(5).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String huazhuang=b.get(6).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String meifa=b.get(7).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String xiche=b.get(8).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String lukuang=b.get(9).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String jiaotong=b.get(10).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String lvyou=b.get(11).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String yundong=b.get(12).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String chenlian=b.get(13).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String diaoyu=b.get(14).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String huachuan=b.get(15).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String yuehui=b.get(16).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String guangjie=b.get(17).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String liangshai=b.get(18).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    	String yusan=b.get(19).replaceAll("<blockquote>", "").replaceAll("</blockquote>", "").replaceAll(" ", "");
	    			
	    	String t3="";
	        Pattern p4=Pattern.compile("<dt>(.*?)</dt>.*?target=.*?blank.*?>(.*?)<b\\sclass=.*?>(.*?)</b>");//正则获取网页日出日落信息
	    	//Pattern p1=Pattern.compile("<(/?\\s?br\\b)>");
	        ArrayList<String> c = new ArrayList<String>();
	    	Matcher n2=p4.matcher(t1);
	    	while(n2.find()) {
	    		t3=n2.group(2);
	    		System.out.println(n2.group(3));
	    		String index=t3;
	    		c.add(index);
	    	}
	    	String iguoming=c.get(0).replaceAll(" ", "");
	    	String iwuran=c.get(1).replaceAll(" ", "");
	    	String iganmao=c.get(2).replaceAll(" ", "");
	    	String iziwaixian=c.get(3).replaceAll(" ", "");
	    	String ichuanyi=c.get(4).replaceAll(" ", "");
	    	String ishushi=c.get(5).replaceAll(" ", "");
	    	String ihuazhuang=c.get(6).replaceAll(" ", "");
	    	String imeifa=c.get(7).replaceAll(" ", "");
	    	String ixiche=c.get(8).replaceAll(" ", "");
	    	String ilukuang=c.get(9).replaceAll(" ", "");
	    	String ijiaotong=c.get(10).replaceAll(" ", "");
	    	String ilvyou=c.get(11).replaceAll(" ", "");
	    	String iyundong=c.get(12).replaceAll(" ", "");
	    	String ichenlian=c.get(13).replaceAll(" ", "");
	    	String idiaoyu=c.get(14).replaceAll(" ", "");
	    	String ihuachuan=c.get(15).replaceAll(" ", "");
	    	String iyuehui=c.get(16).replaceAll(" ", "");
	    	String iguangjie=c.get(17).replaceAll(" ", "");
	    	String iliangshai=c.get(18).replaceAll(" ", "");
	    	String iyusan=c.get(19).replaceAll(" ", "");

	    	
	    	//System.out.println(iguoming);
	    	
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != br) {
					br.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			br = null;

			try {
				if (null != isr) {
					isr.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			isr = null;

			try {
				if (null != in) {
					in.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			in = null;
		}

	}
}

输出:

07:32
16:52
天气较好,您在出门的时候无须带雨伞。
            极不易发            
            良            
            易发            
            弱            
            寒冷            
            较不舒适            
            保湿            
            一般            
            较适宜            
            干燥            
            良好            
            一般            
            较不宜            
            较不宜            
            不宜            
            不适宜            
            较不适宜            
            较不宜            
            基本适宜            
            不带伞            
不带伞


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
31 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4014 0
Linux基础命令---修改组信息groupmod
groupmod修改组的基本信息,包括组名称、组ID等信息。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法groupmod  [选项]  group2、选项列表--help显示帮助文档--version显示命令版本-g gi...
936 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3960 0
剥开比原看代码16:比原是如何通过/list-transactions显示交易信息的
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前一篇文章中,我们试图理解比原是如何交易的,但是由于内容太多,我们把它分成了几个小问题,并在前一篇解决了“在dashboard中如何提交交易信息”,以及“比原后台是如何操作的”。
1023 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
5685 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10716 0
+关注
241
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载