- 浏览: 106398 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
无锡:
http://m.weather.com.cn/data/10 ...
中国天气网接口 返回json格式分析说明 -
wei705026811:
博主。。那个为什么我获取的时候没data:辛卯年
中国天气网接口 返回json格式分析说明 -
luguouyujian:
99 的意思是指 更之前的那个天气一样。比如Image10 ...
中国天气网接口 返回json格式分析说明 -
Ueaner:
辛苦啦~~
中国天气网接口说明及城市编码全部 为天气开发做铺垫 -
zhaiweij:
这个接口是免费的么???
中国天气网接口 返回json格式分析说明
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; /*** * 抓取天气网 城市编码 * @author wu * */ public class GetWeatherCode { /** * 通过域名或IP地址取得网站数据 * * @param strUrl * example:http://www.baidu.com * @return */ public String getContent(String strUrl) { try { URL url = new URL(strUrl); System.out.println(strUrl); URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码 urlconn.connect(); HttpURLConnection httpConn = (HttpURLConnection) urlconn; httpConn = (HttpURLConnection) url.openConnection(); HttpURLConnection.setFollowRedirects(true); httpConn.setRequestMethod("GET"); //模拟浏览器 httpConn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)"); httpConn.setConnectTimeout(60000);//超时设置... int httpResult = httpConn.getResponseCode();// 获得相应代码 if (httpResult != HttpURLConnection.HTTP_OK) { // 不等于HTTP_OK说明连接不成功 System.out.println("fail连接失败!!!"); return null; } else { InputStream ins = urlconn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(ins)); String s = ""; StringBuffer sb = new StringBuffer(""); while ((s = br.readLine()) != null) { sb.append(s + "\r\n"); } br.close(); return sb.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 踢掉 json格式 * @param str * @return */ private String rplaceCode(String str){ if(str != null){ str = str.replaceAll("\\{", ""); str = str.replaceAll("\\}", ""); str = str.replaceAll("\\\"", ""); str = str.replaceAll(",", "\n"); str = str.replaceAll(":", " "); return str; } return null; } /** * 踢掉json格式 * @param str * @return */ private String outCode(String str){ if(str != null){ str = str.replaceAll("\\{", ""); str = str.replaceAll("\\}", ""); str = str.replaceAll("\\\"", ""); str = str.substring(0,str.indexOf(":")); return str; } return null; } /** * 最初实现 输出不够好 所以不用了... */ @Deprecated public void oneImplements(){ ArrayList<String> arry1 = new ArrayList<String>(); ArrayList<String> arry2 = new ArrayList<String>(); for (int i = 10101; i <= 10134; i++) { String rs = getContent("http://www.weather.com.cn/data/city3jdata/provshi/" + i + ".html"); if (rs != null) { if(!rs.contains("<")){ System.out.println("市级:\n" + " " + rs); arry1.add("市级:\n" +rs); arry2.add("市级:\n" +rs); String[] shij = rs.split(","); int ct = shij.length; if (ct > 0) { int start = i * 100; int end = i * 100 + ct; for (int j = start; j <= end; j++) { String rs2 = getContent("http://www.weather.com.cn/data/city3jdata/station/" + j + ".html"); if (rs2 != null && !rs2.contains("<")) { String jieguo = " 市级【" + shij[(j-i*100-1)>0?(j-i*100-1):0] + "】以下的:\n" + rs2; arry1.add(jieguo+"\n http://www.weather.com.cn/data/city3jdata/station/" + j + ".html"); arry2.add(jieguo); System.out.println(jieguo); System.out.println(""); } } } } } } System.out.println("带地址的:"); for (String jg : arry1) { System.out.println(rplaceCode(jg)); } System.out.println("不带地址的:"); for (String jg : arry2) { System.out.println(rplaceCode(jg)); } } public static void main(String args[]) { // // 具体使用方法 // 省级{"10101":"北京","10102":"上海","10103":"天津","10104":"重庆","10105":"黑龙江","10106":"吉林","10107":"辽宁","10108":"内蒙古","10109":"河北","10110":"山西","10111":"陕西","10112":"山东","10113":"新疆","10114":"西藏","10115":"青海","10116":"甘肃","10117":"宁夏","10118":"河南","10119":"江苏","10120":"湖北","10121":"浙江","10122":"安徽","10123":"福建","10124":"江西","10125":"湖南","10126":"贵州","10127":"四川","10128":"广东","10129":"云南","10130":"广西","10131":"海南","10132":"香港","10133":"澳门","10134":"台湾"} GetWeatherCode ou = new GetWeatherCode(); ArrayList<String> arry1 = new ArrayList<String>();//带地址的 ArrayList<String> arry2 = new ArrayList<String>();//不带地址的 //firebug 分析出的 首要城市请求地址 String sourceUrl = "http://www.weather.com.cn/data/city3jdata/china.html"; String src = ou.getContent(sourceUrl);//读取内容 if(src != null && !src.contains("<")){ String[] sheng = src.split(",");//省级分割 for (String sh : sheng) { String outCode = ou.outCode(sh); String rs = ou.getContent("http://www.weather.com.cn/data/city3jdata/provshi/" + outCode + ".html"); if (rs != null) { if (!rs.contains("<")) { arry1.add("市级:"+sh+"\n" + rs); arry2.add("市级:"+sh+"\n" + rs); String[] shij = rs.split(",");//市级分割 for (String sj : shij) { String shjiOutCode = ou.outCode(sj); String rs2 = ou.getContent("http://www.weather.com.cn/data/city3jdata/station/" + (outCode + shjiOutCode) + ".html"); if (rs2 != null && !rs2.contains("<")) { String jieguo = " 市级【" + sj + "】以下的:\n" + rs2; arry1.add(jieguo + "http://www.weather.com.cn/data/city3jdata/station/" + (outCode + shjiOutCode) + ".html"); arry2.add(jieguo); } } } } } } System.out.println("带地址的:"); for (String jg : arry1) { System.out.println(ou.rplaceCode(jg)); } System.out.println("不带地址的:"); for (String jg : arry2) { System.out.println(ou.rplaceCode(jg)); } //简单测试 //System.out.println(ou.rplaceCode("{\"10101\":\"北京\",\"10102\":\"上海\",\"10103\":\"天津\",\"10104\":\"重庆\",\"10105\":\"黑龙江\",\"10106\":\"吉林\",\"10107\":\"辽宁\",\"10108\":\"内蒙古\",\"10109\":\"河北\",\"10110\":\"山西\",\"10111\":\"陕西\",\"10112\":\"山东\",\"10113\":\"新疆\",\"10114\":\"西藏\",\"10115\":\"青海\",\"10116\":\"甘肃\",\"10117\":\"宁夏\",\"10118\":\"河南\",\"10119\":\"江苏\",\"10120\":\"湖北\",\"10121\":\"浙江\",\"10122\":\"安徽\",\"10123\":\"福建\",\"10124\":\"江西\",\"10125\":\"湖南\",\"10126\":\"贵州\",\"10127\":\"四川\",\"10128\":\"广东\",\"10129\":\"云南\",\"10130\":\"广西\",\"10131\":\"海南\",\"10132\":\"香港\",\"10133\":\"澳门\",\"10134\":\"台湾\"}")); } }
发表评论
-
proxool中的maximum-active-time 转
2012-01-31 16:50 1210近日调试一个项目的时候, 总是在运行一段时间之后出现如下的警告 ... -
那些令人发狂的程序特性 转
2011-12-09 14:36 940这些最为奇怪的程序语言的特性,来自stackoverflo ... -
近百android程序源码贡献 转载的自己看的
2011-11-24 13:55 1223Android PDF 阅读器 http://source ... -
中国天气网接口 返回json格式分析说明
2011-10-19 15:50 13222手机天气插件更新数据 ... -
中国天气网接口说明及城市编码全部 为天气开发做铺垫
2011-10-13 17:21 8656中国天气网接口及城市编码全部 为天气开发做铺垫 中国天气网接 ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 10:22 2030原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:59 780原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:53 811原文见:http://www.oschina.net/bb ... -
5.14日下午 jvm 调优 java社区日上的jvm调优
2011-05-20 14:31 22085.14日下午 jvm 调优 java社区日上的jvm调优, ... -
svn 与 apache 整合
2011-03-02 16:20 1534整理了一些步骤,大部 ... -
weblogic 报错 Server failed to shutdown within the configured timeout of 30 second
2010-12-09 16:27 4664weblogic 下错错误 hibernate 配置里加上这个 ... -
Android2.3 的安装地址
2010-12-09 10:36 1625机器人2.3昨天问世了哈哈 先存着了 哈哈 翻个墙不容易 最主 ... -
Android2.2—API中文文档合集
2010-11-19 15:03 1380哎 今天偶然发现了这个 就顺带着整理吧 没想到整理完才发现最后 ... -
log4j屏蔽system.out的方法 摘取
2010-04-21 17:02 2900public static void setStdoutWit ... -
Hibernate的三种连接池设置C3P0、Proxool和DBCP
2008-06-12 09:42 5899<!-- JDBC驱动程序 --> <pr ... -
c3p0 连接池配置
2008-06-12 09:31 1149<c3p0-config> <de ... -
在JSTL中使用字符串处理函数
2008-06-05 15:03 5757函数名 函数说明 ... -
spring和quartz进行定时邮件发送 (转)
2008-06-05 10:38 3491关于Spring的邮件发送的功能演示: (我把程序中一些敏感的 ... -
Spring MVC framework深入总体分析(转)
2008-06-05 10:06 921下面列举一下S ...
相关推荐
python爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码....
天气预报,城市编码,包含全国所有的城市编码,大概有三千二百个,可用于爬虫抓取自己想要的城市天气状况,
标题 "百度地图 全国所有城市代码" 指的是一个包含了中国所有城市在百度地图平台上的特定编码的文本文件。这些代码是百度地图服务为了标识和管理全国各地城市的一个内部标识符,通常用于地理定位、路线规划和其他...
"jsp网页抓取天气预报源代码" 这个标题表明这是一个与Java Server Pages(JSP)相关的项目,目标是实现从网页上抓取天气预报信息的功能。JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码来处理服务器端...
在IT行业中,数据抓取是一项重要的技能,尤其是在大数据...以上是关于“点评网美食数据抓取代码--java 实现”项目中的主要知识点。通过实践这些技术,不仅可以掌握网络爬虫的开发,还能提升Java编程和数据处理能力。
标题中的“抓取中国招标网数据源码”指的是一个C#编程项目,目的是自动化地从中国招标网这个网站上获取相关的招标信息。这样的程序通常利用网络爬虫技术,通过解析HTML网页来提取需要的数据。 首先,我们要理解数据...
VC 抓取指定网页的源代码,抓取远程指定URL地址中包括的文件,并显示出网页源代码,实现了类似“采集”的功能,将远程网页的内容先读取出来,然后显示,由此可扩展成一个采集模块,添加过滤功能即可,要用到字符串...
描述进一步说明了项目的内容:利用Excel表格提供的城市列表,从某个网站上自动化地抓取这些城市之间的公路路程数据。密码提示表明这可能是一个受保护的代码或程序,使用者需要输入特定的用户名作为密码才能访问。 ...
“j.soso.weatherV1.5.2.js”和“weather.js”可能是腾讯网站上的JavaScript源代码,这些文件可能包含了动态加载天气数据的函数和API调用。 下面是基于这些文件可能涉及的IT知识点的详细解释: 1. **网络爬虫**:...
rar里面含有中国气象局城市代码与城市之间关系映射的SQL文件及相关类容抓取的java源码,源码中使用到的是sqlite数据库。
VB6.0演示如何抓取网络数据包,截获网络包的例子,原型是一个网络原始数据包嗅探器的修正版代码,程序基于winsock API,支持TCP,UDP和ICMP三种协议数据的抓取,支持记录到文件等操作。抓取的数据中包括了IP 报头、...
这个“简单的数据抓取工具源代码”很可能提供了实现这一目标的基础框架。在IT领域,数据抓取是数据分析、市场研究、新闻监测等众多应用的重要一环。 数据抓取通常涉及到以下几个关键知识点: 1. **HTTP/HTTPS协议*...
然而,传统上,搜索引擎爬虫并不总是能够执行网页上的JS代码,因此它们可能无法识别通过JS进行的页面重定向。这可能导致爬虫无法到达实际内容所在的页面,从而影响网站的SEO(搜索引擎优化)。 为了解决这个问题,...
总的来说,抓取网页源代码是一项基础但关键的网络编程任务,它涉及网络协议、数据编码和错误处理等多个方面。通过实践和理解这样的程序,开发者可以进一步掌握网络通信的原理,并将其应用到更复杂的网络应用中,如...
抓取G529数据中...完成! 抓取G1204数据中...完成! 抓取G279数据中...完成! 抓取G276数据中...完成! 抓取G1022数据中...完成! 抓取G280数据中...完成! 抓取G1206数据中...完成! 抓取G1224数据中...完成! 抓取G818数据...
DXGI(DirectX Graphics Infrastructure)是Microsoft DirectX 10及更高版本中的一部分,它提供了一组接口和功能,用于...此外,这个示例代码也是一个很好的学习资源,可以帮助开发者提升在DirectX和C++编程上的技能。
在开发过程中,为了调试和优化代码,有时我们需要抓取编码后的图片进行分析。下面我们将详细探讨如何在海思Hi35xx平台上实现这一功能。 首先,我们需要了解的是VENC(Video Encoder)模块。VENC是视频编码器的简称...
"IVBD『限制百度蜘蛛抓取txt代码』"这个主题涉及到如何通过编写`robots.txt`文件来管理搜索引擎爬虫的访问权限。`robots.txt`是一种简单的文本文件,它告诉搜索引擎哪些页面可以抓取,哪些应避免抓取。在这个场景中...
C#网络数据包抓取.rar
这个“六自由度机械臂抓取.zip”文件可能包含与使用MATLAB进行六自由度机械臂控制相关的代码、模型和教程。 MATLAB是一种强大的数学计算和编程环境,特别适合于数值分析、算法开发和数据可视化。在机械臂控制领域,...