• python获取综合信息(地震信息,天气,气象新闻,热点新闻,小时降雨量前30,气象预警)


    Python 获取综合信息(地震信息、天气、气象新闻、热点新闻、小时降雨量前30、气象预警)介绍

    一、背景介绍

    随着互联网技术的发展,大量的数据和信息成为了人们日常生活中不可或缺的一部分。其中,关于地震、天气、气象新闻、热点新闻、小时降雨量以及气象预警等综合信息,对于人们的日常生活和决策都有着重要的影响。因此,使用Python编写一个能够自动获取这些综合信息的程序,无疑能够大大提高人们的生活质量和效率。

    二、功能介绍

    1. 地震信息获取:程序可以通过接入地震监测机构的API,实时获取地震信息,包括地震的震级、发生时间、地点等关键信息,并在第一时间向用户推送。
    2. 天气和气象新闻获取:程序可以对接各大气象服务提供商的API,获取实时天气数据和气象新闻,帮助用户了解当前及未来的天气情况,以及气象事件的最新动态。
    3. 热点新闻获取:程序可以接入新闻聚合平台的API,获取当前的热点新闻,让用户及时了解国内外的重大事件。
    4. 小时降雨量前30获取:通过接入气象数据服务,程序可以获取特定区域内的小时降雨量前30的数据,帮助用户了解哪些地区降雨较多,提前做好防范和应对措施。
    5. 气象预警获取:程序可以实时获取气象预警信息,包括暴雨、台风、高温等预警,确保用户在第一时间了解并采取相应的防护措施。

    三、技术实现

    为了实现上述功能,我们需要使用到以下技术:

    • Python编程语言:Python是一种易于学习且功能强大的编程语言,非常适合用于数据获取和处理。
    • 网络请求库:如requests库,用于发送HTTP请求,获取数据。
    • JSON解析库:如json库,用于解析从API返回的JSON格式数据。
    • 定时任务库:如schedule库,用于设置定时任务,自动获取和更新数据。
    • 推送通知库:如pushbullet库,用于将获取的信息推送给用户。
    1. import requests
    2. from fake_useragent import UserAgent
    3. from selenium import webdriver
    4. from lxml import etree
    5. import json
    6. import time
    7. import datetime
    8. import pymysql
    9. from apscheduler.schedulers.blocking import BlockingScheduler
    10. from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR
    11. import logging
    12. #1.天气类
    13. class Weather:
    14. def get_urls(self):
    15. filename='F://weather//province.json'
    16. f_obj=open(filename,'rb')
    17. urls=json.load(f_obj)
    18. return urls
    19. def weather_info(self,url_obj):
    20. url=url_obj['url']
    21. type=url_obj['type']
    22. value=url_obj['value']
    23. pname=url_obj['pname']
    24. data=[]
    25. response=requests.get(url=url, headers={'User-Agent': UserAgent().random})
    26. response.encoding = 'utf-8'
    27. html=response.text
    28. if html.find("<"+pname+" dn=\"day\">")>-1:
    29. result=html.replace("<"+pname+" dn=\"day\">","").replace("+pname+">","").replace(","").replace(" an","")
    30. else:
    31. result = html.replace("<" + pname + " dn=\"nay\">", "").replace(" + pname + ">", "").replace(","").replace(" an", "")
    32. weather_datas = result.split("/>")
    33. db = DataBaseLink(host="127.0.0.1", port=6688, user='root', password='admin', db='weather')
    34. db_result=db.select_weather(pname)
    35. if db_result[0][0] == 0:
    36. for weather_data in weather_datas:
    37. if weather_data.find("stateDetailed")>-1:
    38. cityData = weather_data.split(" ")
    39. if type=="0":
    40. province = cityData[0].replace("quName=", "").replace("\"", "").replace("\n", "").replace("\r", "")
    41. state1 = cityData[3].replace("state1=", "").replace("\"", "")
    42. state2 = cityData[4].replace("state2=", "").replace("\"", "")
    43. stateDetailed = cityData[5].replace("stateDetailed=", "").replace("\"", "")
    44. windState = cityData[8].replace("windState=", "").replace("\"", "")
    45. else:
    46. province = cityData[2].replace("cityname=", "").replace("\"", "")
    47. state1 = cityData[6].replace("state1=", "").replace("\"", "")
    48. state2 = cityData[7].replace("state2=", "").replace("\"", "")
    49. stateDetailed = cityData[8].replace("stateDetailed=", "").replace("\"", "")
    50. windState = cityData[12].replace("windState=", "").replace("\"", "")
    51. weather_info={"province": province, "pname": pname, "type": type, "state1": state1, "state2": state2,
    52. "stateDetailed": stateDetailed, "windState": windState}
    53. if weather_info not in data:
    54. data.append(weather_info)
    55. db.close_db()
    56. return data
    57. # 插入天气数据
    58. def weather_insert_db(self,weather_datas):
    59. db = DataBaseLink(host="127.0.0.1", port=6688, user='root', password='admin', db='weather')
    60. for weather_data in weather_datas:
    61. province=weather_data['province']
    62. pname=weather_data['pname']
    63. type=weather_data['type']
    64. state1=weather_data['state1']
    65. state2=weather_data['state2']
    66. stateDetailed=weather_data['stateDetailed']
    67. windState=weather_data['windState']
    68. db.insert_weather(province, pname, type, state1, state2, stateDetailed, windState)
    69. db.commit()
    70. db.close_db()

    注:代码版权归原作者所有,本文仅是分享原理,仅供学习和参考

    四、总结

    通过Python编写一个综合信息获取程序,可以帮助用户实时了解地震、天气、气象新闻、热点新闻、小时降雨量以及气象预警等关键信息,为用户的日常生活和决策提供有力的支持。同时,这也体现了Python在数据处理和信息获取方面的强大能力。

    获取全部代码:https://download.csdn.net/download/aszhangwendi/88891948

  • 相关阅读:
    《深入理解Java虚拟机》读书笔记--第一部分走进java
    neo4j load csv 配置和使用
    基于matlab的强化学习QLearning路径规划性能仿真
    umi4+vue3开发模板摸索
    腾讯云服务器简介和使用流程
    C程序设计(谭浩强)第五版课后题答案 第一章
    VoLTE端到端业务详解 | S1AP协议
    浅谈Elasticsearch安全和权限管理
    Java 是值传递还是?
    10个编程好习惯:优秀程序员的经验分享
  • 原文地址:https://blog.csdn.net/aszhangwendi/article/details/136376672