• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法

C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法,分享给大家供大家参考。具体实现方法如下:

一、百度天气

接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9,其中ak是密钥,自行去申请即可,便于大家测试,楼主就公布并了自己的Key,这样可以直接获取到数据。

获取到的数据是这样的:

根据返回的Json定义出相应的数据结构:

{
        public int error { get; set; }
        public string status { get; set; }
        public string date { get; set; }
        public List<BaiduResult> results { get; set; }
}

public class BaiduResult
{
        public string currentCity { get; set; }
        public string pm25 { get; set; }
        public List<BaiduIndex> index { get; set; }
        public List<BaiDuWeaterData> weather_data { get; set; }
}

public class BaiduIndex
{
        public string title { get; set; }
        public string zs { get; set; }
        public string tipt { get; set; }
        public string des { get; set; }
}

public class BaiDuWeaterData
{
        public string date { get; set; }
        public string dayPictureUrl { get; set; }
        public string nightPictureUrl { get; set; }
        public string weather { get; set; }
        public string wind { get; set; }
        public string temperature { get; set; }
}</div>

然后直接通过Newtonsoft.Json 反序列化成即可。

既然是获取天气,肯定是希望获取客户所在城市的天气,下一步则是需要根据用户机器IP获取所在城市,然后获取该城市的天气信息。

二、IP获取城市

通过淘宝的IP库,http://ip.taobao.com/,即可查询指定IP所在的城市、国家、运营商等。

有了上面的途径,我们下一步的工作就是获取客户的外网IP,而外网IP,是机器连接外网才会有,所以楼主写了一个页面,部署在外网服务器。

相关代码如下:

using (var client = new WebClient())
{
 var url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
 client.Encoding = Encoding.UTF8;
 var str = client.DownloadString(url);
 Response.Write(str);
}</div>

这样我们就可以获取到客户所在城市的天气数据了。

三、获取百度新闻

最近还有个小需求,获取某某新闻数据,楼主习惯性的查了下百度的相关资料,能通过Rss来获取百度新闻数据。

接口地址:http://news.baidu.com/n?cmd=7&loc=0&name=%B1%B1%BE%A9&tn=rss

打开后,查看它的源,无非就是xml文件,我们可以将xml文件,序列化成对象,如果没有接触过这类知识,可以看下《xml与对象的序列化和反序列化》。

根据它的源,就能轻松定义出数据结构。

public class Rss
{
        public Channel channel { get; set; }
}
[XmlRoot("channel")]
public class Channel
{
        public string title { get; set; }
        public BaiduImage image { get; set; }
        public string link { get; set; }
        public string description { get; set; }
        public string language { get; set; }
        public string lastBuildDate { get; set; }
        public string docs { get; set; }
        public string generator { get; set; }
        [XmlElement]
        public List<Channel_Item> item { get; set; }
}

public class BaiduImage
{
        public string title { get; set; }
        public string link { get; set; }
        public string url { get; set; }
}

public class Channel_Item
{
        public string title { get; set; }
        public string link { get; set; }
       

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法

相关文章

  • 2017-05-28C#多线程编程中的锁系统(四):自旋锁
  • 2017-05-28C#设计模式之外观模式介绍
  • 2017-05-28C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
  • 2017-05-28C#注释的一些使用方法浅谈
  • 2017-05-28C# 撒列实现关键字过滤的实例
  • 2017-05-28C#多线程之Thread中Thread.IsAlive属性用法分析
  • 2017-05-28C#实现百度网站收录和排名查询功能思路及实例
  • 2017-05-28C# MVC 微信支付教程系列之公众号支付代码
  • 2017-05-28C#实现winform渐变效果的方法
  • 2017-05-28C#Url操作类封装、仿Node.Js中的Url模块实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#自动给文章关键字加链接实现代码
    • WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析
    • C# Winform 子窗体访问父级窗体的控件和属性
    • C#信号量用法简单示例
    • 简单的观察者模式示例分享
    • C# 利用Aspose.Words.dll将 Word 转成PDF
    • 解析c#操作excel后关闭excel.exe的方法
    • C#处理Access中事务的方法
    • C#使用正则表达式过滤html标签
    • C#使用Word中的内置对话框实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有