当前位置:   article > 正文

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

pyhon爬取自然灾害新闻

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("<city ","").replace(" an","")
  30. else:
  31. result = html.replace("<" + pname + " dn=\"nay\">", "").replace("</" + pname + ">", "").replace("<city ","").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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/883262
推荐阅读
相关标签
  

闽ICP备14008679号