西安六月份天气情况分析

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45066719/article/details/94216600

西安六月份天气情况分析

1.爬取数据

1.requests请求网页

2.Beautifulsoup 解析网页

`

def get_data(self,url):
    """
    爬取天气数据
    以列表的形式返回数据
    """
    resp = requests.get(url)
    html = resp.content.decode('gbk')
    soup = BeautifulSoup(html, 'html.parser') # 和网页源代码格式不同,即将其格式化
    tr_list = soup.find_all('tr')
    return tr_list

`

2.数据保存

1.保存为 csv 文件

`

def saving_data(self,tr_list):
    """
    将出入的列表的内容
    保存数据为CSV文件
    """
    dates, conditions, h_temps, l_temps = [], [], [], []
    for data in tr_list[1:]:
        s_datas = data.text.split()
        dates.append(s_datas[0])
        conditions.append(''.join(s_datas[1:3]))
        h_temps.append(s_datas[3])
        l_temps.append(s_datas[5])
    _data=pd.DataFrame()
    _data['日期']=dates
    _data['天气状况']=conditions
    _data['最高温度']=h_temps
    _data['最低温度']=l_temps
    _data.to_csv("xi'an weather condition.csv",index=False,encoding='utf-8')#不保存索引号

`

3.数据处理

1.数据读取

2.数据清洗

(1)有无缺省

(2)排除脏数据干扰

3.数据处理

(1)字符串的处理

(2)数据类型改变

`

def data_cleaning(self,path):
    """
    清洗爬取下的数据
    将温度的格式转化为整数类型
    """
    data = pd.read_csv(path)
    # print(data.head(5))
    # print(data.isnull())
    # print((data.isnull()).sum())
    data['最高温度\摄氏度'] = data['最高温度'].map(lambda x: int(x.replace('℃', '')))
    data['最低温度\摄氏度'] = data['最低温度'].map(lambda x: int(x.replace('℃', '')))
    data.to_csv("xi'an weather condition.csv",index=False,encoding='utf-8')#不保存索引号

`

3.数据可视化

1.解决中文编码问题

`

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文问题
plt.rcParams['axes.unicode_minus'] = False  # 解决负号问题

`

2.以折线图的样式展现数据

`

def data_visualization(self,path):
    """
    数据可视化

    """
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文问题
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号问题
    data = pd.read_csv(path)
    dates = data['日期']
    highs = data['最高温度\摄氏度']
    lows = data['最低温度\摄氏度']
    # #根据数据绘制图形
    fig = plt.figure(dpi=128, figsize=(10, 6))
    plt.plot(dates, highs, c="red", alpha=0.5)
    plt.plot(dates, lows, c="green", alpha=0.5)
    # 给图表区域着色
    plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.2)  
    # fill_between(x,y.z,facecolor,alpha)
    # 设置图形格式
    plt.title("西安2019年6月份天气分析", fontsize=24)
    plt.xlabel("日期", fontsize=12)
    fig.autofmt_xdate()
    plt.ylabel("气温", fontsize=12)
    # 参数刻度线样式的设置
    plt.tick_params(axis="both", which="major", labelsize=10)
    # 修改刻度
    plt.xticks(dates[::1])#步长为1
    # 显示2019年六月份每日最高气温的折线图
    plt.show()

`

4.主函数

`

def main():
    #需要爬取的网页的URL
    url = 'http://www.tianqihoubao.com/lishi/xian/month/201906.html'
    #爬取的数据保存路径
    path=r"D:\py项目\爬虫\xi'an weather condition.csv"
    #类的实例化
    weather = Weather()
    #调用类的方法获取数据(返回的是列表)
    list=weather.get_data(url)
    #调用类的方法保存数据(csv文件)
    weather.saving_data(list)
    #调用类的方法清下数据
    weather.data_cleaning(path)
    #调用类的方法可视化
    weather.data_visualization(path)
if __name__ == '__main__':
    main()

`

展开阅读全文

c# 实现天气情况的显示

07-30

[code=C#]rn/// rn /// 根据城市取得天气预报信息 rn /// rn /// 城市中文名称 如:福州 rn /// rn public static string GetSinaWether(string ps_CityName)rn rn string strCity = StrConv(ps_CityName, "GB2312");rnrn //string myuri="http://appnews.qq.com/cgi-bin/news_qq_search?city="+city; rn string myuri = "http://weather.news.sina.com.cn/cgi-bin/figureWeather/simpleSearch.cgi?city=" + strCity;rn WebRequest webr = WebRequest.Create(myuri);rnrn Stream rc = webr.GetResponse().GetResponseStream();rnrn StreamReader read = new StreamReader(rc, System.Text.Encoding.Default);rn string abc = read.ReadToEnd();rn int l1 = abc.IndexOf("今日天气");rn string restr = "" + abc.Substring(l1).Replace(" ", "").Replace("", "").Replace("color:#083887", "").Replace("", "").Replace("", "").Replace("", "").Replace("", "").Replace("", "");rn rn return restr.Replace("50", "20");rn rnrn /// rn /// 根据城市取得天气预报信息 rn /// rn /// 城市中文名称 如:福州 rn /// rn public static string GetQQWether(string ps_CityName)rn rn string strCity = StrConv(ps_CityName, "GB2312");rn MessageBox.Show(strCity);rn string myuri = "http://appnews.qq.com/cgi-bin/news_qq_search?city=" + strCity;rn WebRequest webr = WebRequest.Create(myuri);rnrn Stream rc = webr.GetResponse().GetResponseStream();rnrn StreamReader read = new StreamReader(rc, System.Text.Encoding.Default);rn string abc = read.ReadToEnd();rn MessageBox.Show(abc);rn rn return abc;rn rn rnrn /// rn /// 编码转换 rn /// rn /// rn /// rn /// rn public static string StrConv(string strIn, string encoding)rn rn return System.Web.HttpUtility.UrlEncode(strIn, System.Text.Encoding.GetEncoding(encoding));rnrn rn[/code]rnrn问题:rn运行后界面上什么也没有显示,没有天情况,各位看看是什么原因 论坛

小项目:游戏场景天气情况模拟

01-09

package p1;rnimport java.util.Scanner;rnimport java.util.Random;rnpublic class Test rnrn /**rn * @param args 实训第一周项目考试rn */rn public static void main(String[] args) rn //小项目:游戏场景天气情况模拟rn /** 游戏场景以及相关的天气情况如下rn * 游戏场景 天气情况rn * 山庄 晴天rn * 草原 晴天,暴雨,高温 随机一种rn * 沙漠 晴天,暴雨,大风,沙尘暴,高温 随机一种rn * 皇陵 晴天,暴雨,沙尘暴,高温 随机一种rn * 特殊要求如下:1: 高温出现的时间间隔为2天 如1号出现那么2号3号rn * 不能出现高温rn * 2:沙尘暴出现的间隔为 5天rn * 3:大风天气出现的时间间隔为3天rn * 4:每天控制台打印出4个场景的天气情况,4个场景的天rn * 情况可以相同,但是连续运行2次应该有所差别rn * 5:打印天数用户控制台输入月份rn * 注意大月31天,小月30天 2月28天 如输入1月打印31天的天气情况rn * 6:打印输出控制台后需要提示是否还要相关月份打印,是重新开始 否结束rn * 7:控制台输出格式如下:rn * 1号rn * 山庄 晴天rn * 草原 晴天rn * 沙漠 高温rn * 皇陵 沙尘暴rn * 2号rn * 山庄 晴天rn * 草原 晴天rn * 沙漠 暴雨rn * 皇陵 高温rn * rn * rn * rn */rn //java的控制台输入类rn Scanner scanner=new Scanner(System.in);rn System.out.println("请输入一个整数\tnum");rn int num=scanner.nextInt();//控制台读取一个整数rn System.out.println("num="+num);rn System.out.println("请输入一个字符串\tstr");rn String str=scanner.next();//控制台读取一个字符串rn System.out.println("str="+str);rn //java生成随机数rn Random random=new Random();rn int r= random.nextInt(5);//获得一个5以内随机数 最小是0rn rn System.out.println("生成的随机数为:\t"+r);rn rn rn rnrn rnrnrn 论坛

[西安招聘]

07-24

技术总监rn岗位职责:负责规划公司年度技术工作的发展计划和发展方向。包括整体技术体系架构及对公司的产品或项目进行总体把握和监管。确定产品结构和功能。负责研发中心的技术管理工作,及时了解、掌握新的开发技术和市场需求,研究、探求新的开发技术和方法。rn岗位要求:博士学位,具有两年以上的工作经验(金融行业开发经验的优先考虑)。rn1、 有较强的管理魄力、组织能力,善于沟通。rn2、 有较强的工作主动性和责任心,识大体顾大局。rn3、 有创新意识,能善于解决项目开发中的疑难问题。rn4、 带领团队不断提出新的研发项目方案。rn待 遇:年薪10万元以上。享受四金(养老金、失业金、医疗保险、住房公积金)补贴及公司一切福利待遇。rnrnBI工程师rn岗位职责:负责银行项目中的BI应用系统的开发rn岗位要求:rn1、 大学本科以上学历(计算机相关专业),有2—4年以上的工作经验;rn2、 熟悉数据仓库的体系架构和主流的工具,熟悉主流的数据仓库解决方案,实际做过相关行业的数据仓库项目的架构设计和实施。 rn3、 精通至少一种BI产品(1.Congos 2.Brio 3.BO 4.SAS 5.TeraData 6.IBM DB2 7.Oracle 8、Microsoft 9、其它 ) rn4、 有ETL工具的实施经验者优先(DataStage,PowerCenter,MS DTS等) rn5、 精通Oracle、Informix、DB2中的一种或多种数据库的应用开发;rn6、 有丰富的相关行业(金融、电信、零售、保险等)BI工作经验,具有该行业的BI业务模型知识。rnrn系统分析师rn岗位职责:独立完成客户需求分析、系统设计与开发rn岗位要求:rn1、 大学本科以上学历(计算机相关专业),有2—4年以上的工作经验;rn2、 有至少2个以上大中型项目的分析设计经验,有金融业务分析经验者优先;rn3、 熟练运用UML进行软件架构设计,熟练掌握Rose、Together、PowerDesigner等工具;rn4、 精通J2EE架构和Java本身,对设计模式有深刻的理解;rn5、 精通Struts、Hibernate、Spring架构,可以对其进行有效的扩展;rn6、 熟悉WebLogic、WebSphere、JBoss等其一种应用服务器的配置和调优;rn7、 有良好的沟通能力和协作精神;rn8、 有良好的职业素养和责任心。rnrn高级软件工程师1rn岗位职责:独立完成系统设计文档的编写与模块开发。rn岗位要求:rn1、 大学本科以上学历;rn2、 熟悉面向对象开发方法;熟悉产品和项目开发流程,逻辑思维能力强,思路清晰;rn3、 有二年以上金融行业B/S架构项目开发经验;rn4、 熟悉XML及其相关标准、技术开发工具;rn5、 熟悉掌握Java语言,熟悉JSP/Servlet/EJB和HTML、JavaScript等WEB开发技术,熟悉JBuilder、Eclipse等开发工具;rn6、 熟悉J2EE架构,熟悉Struts、Spring、Hibernate架构;rn7、 熟悉WebLogic、WebSphere、JBoss等应用服务器配置和调优;rn8、 熟悉Oracle、Informix等大型数据库开发,熟悉PLSQL;rn9、 了解多种流行开源技术;rn10、 工作态度积极认真,精力充沛,能够适应强大的工作压力;rn11、 有较好的团队精神、合作意识,善于沟通;较强的学习能力;rn12、 有独立需求分析、系统设计和文档编写能力;rnrn高级软件工程师2rn岗位职责:独立完成系统设计文档的编写与模块开发。rn岗位要求:rn1、 大学本科以上学历;rn2、 熟悉面向对象开发方法;熟悉产品和项目开发流程,逻辑思维能力强,思路清晰;rn3、 有二年以上金融行业C/S架构项目开发经验;rn4、 熟悉掌握C/C++语言,熟悉GDB等工具;rn5、 熟悉Oracle、Informix等大型数据库开发,熟悉ESQL/C、PLSQL;rn6、 熟悉Linux/Unix 环境,掌握进程间通讯、多线程技术,对网络协议有一定的研究;rn7、 工作态度积极认真,精力充沛,能够适应强大的工作压力;rn8、 有较好的团队精神、合作意识,善于沟通,较强的学习能力;rn9、 有独立需求分析、系统设计和文档编写能力;rnrn软件测试工程师rn岗位职责:参与项目的软件质量保证工作,承担软件产品的功能测试、性能测试、自动化测试等测试工作。rn岗位要求:rn1、 本科及以上学历,计算机相关专业; rn2、 熟悉软件测试理论,熟悉软件测试流程,有两年以上软件测试经验;能独立编写测试计划,测试用例;rn3、 具有大型软件项目的系统测试实战经验;具有项目开发经验或性能测试或白盒测试经验优先考虑;rn4、 熟悉LoadRunner等压力测试工具以及其他自动化测试工具;rn5、 熟悉Java等至少一种编程语言;熟悉Oracle等数据库;熟悉WebLogic等应用服务器; rn6、 拥有较好的沟通技巧及团队合作精神,较强的责任感及进取精神,热爱软件测试工作,工作细致认真,有耐心。rn程序员rn岗位职责:按照系统设计文档独立完成模块开发。rn岗位要求:rn1、 大学本科以上学历;rn2、 熟悉面向对象开发方法;熟悉产品和项目开发流程,逻辑思维能力强,思路清晰;rn3、 熟悉掌握Java语言,熟悉JSP/Servlet和HTML、JavaScript等WEB开发技术,熟悉JBuilder、Eclipse等开发工具;rn4、 熟悉J2EE架构,熟悉Struts、Hibernate等架构;rn5、 熟悉数据库SQL语言;rn6、 工作态度积极认真,精力充沛,能够适应强大的工作压力;rn7、 有较好的团队精神、合作意识,善于沟通;较强的学习能力;rnrnrn联系方式:029-87628126 87606904 rn联 系 人:郭 华rn电子邮件: guohua@yinbo.ccrnhttp://www.yinbo.cc/xinwenzhongxin_a_info.php?113 论坛

没有更多推荐了,返回首页