当前位置: 首页 > news >正文

天气预报的爬虫内容打印并存储用户操作

  • 系统名称: 基于网络爬虫技术的天气数据查询系统
  • 文档作者:清馨
  • 创作时间:2024-7-29
  • 最新修改时间:2024-7-29
  • 最新版本号: 1.0

1.背景描述

该系统将基于目前比较流行的网络爬虫技术,对网站上(NowAPI 数据接口服务商 诺派数据)的天气数据进行查询抓包分析,最终使客户能够通过简单的操作,快速,准确的获取目标天气数据。主要包括两部分的功能,第一部分是天气数据查询,包括时间段数据查询,实时天气数据查询;第二部分是打印查询出的天气数据。

2.项目功能:

 

  • 数据输入与显示(控制台):主要用于用户输入天气数据查询的条件信息,以及显示查询结果
  • 数据检查模块:用于检查用户输入的数据是否有效,格式是否正确
  • 时间段数据查询:用于收集时间段数据查询所需要的所有数据,调用网络数据查询模块,同时对网络数据查询模块的返回值进行整理,使其按照规定的格式返回控制台进行显示,并且把查询结果暂存到缓存区用于后续的打印。查询时间以用户输入的起始日期开始,输入的终止日期结束
  • 实时数据查询:用于收集实时数据查询所需要的所有数据,调用网络数据查询模块,同时对网络数据查询模块的返回值进行整理,使其按照规定的格式返回控制台进行显示,并且把查询结果暂存到缓存区用于后续的打印,查询时间区间为以输入有效的终止时间的时刻为准的操作系统时间为起始时间,以输入的终止时间为结束时间
  • 数据打印模块:当用户选择数据打印时,从暂存区读出数据进行打印

3.项目框架:

整体使用多文件管理实现:

Main.c:主函数调用接口,通过终端显示选择供用户直接使用。

Body.c:

        1.TCP网络接口:

当日:103.205.5.249:80

FLAG:http://api.k780.com/?app=weather.today&cityNm=西安&appkey=73537&sign=9364942420f99e812362d80ac22493fc&format=json

http://api.k780.com/?app=weather.future&cityNm=西安&appkey=73537&sign=9364942420f99e812362d80ac22493fc&format=json

  1. 终端输入实现对当前或者未来天气的内容进行爬虫
  2. 使用cjson对爬虫得到的内容键值段进行分段处理。
  3. 打印在终端,并将用户输入的操作放入log中

Body.h

Head.h

4.项目模块分析介绍:

socket(IP:113.137.45.90:443)->send(

GET/?app=weather.today&cityno=beijing&appkey=73537&sign=9364942420f99e812362d80ac22493fc&format=json HTTP/1.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6

Connection: keep-close

Host: api.k780.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0)->recv(接收网络爬虫得到的数据并打印)->cjson(对得到的键值段进行分段)->页面打印并提供终端选择->对用户终端输入值进行文件保存(log)

5.项目流程图:

项目流程(部分)

项目内容代码

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c程序杂谈系列(加减乘除模篇)
  • 【前端element-ui】对于封装el-select和checkbox-group的多选控件导致数据双向绑定失败问题的处理
  • Python基础知识笔记——常用函数
  • 机械拆装-基于Unity-本地数据持久化
  • Python面试整理-数据处理和分析
  • 丹摩智算:如何在云端开发一个AI应用——基于UNet的眼底血管分割案例
  • 从零开始学习黑客技术,看这一篇就够了
  • vue-i18n使用方法
  • RHCE之seLinux和防火墙
  • C#知识|文件与目录操作:目录的操作
  • 空指针和野指针的区别
  • Arduino Mega 2560开发板的引脚分配图及说明,以及链接can的方法
  • vite tsx项目的element plus集成 - 按需引入踩坑
  • 虚拟机配置RabbitMQ集群教程
  • 长短期记忆网络(LSTM)预测模型及其Python和MATLAB实现
  • 【node学习】协程
  • ECS应用管理最佳实践
  • Java反射-动态类加载和重新加载
  • Java面向对象及其三大特征
  • Laravel 实践之路: 数据库迁移与数据填充
  • SOFAMosn配置模型
  • Terraform入门 - 3. 变更基础设施
  • vue 配置sass、scss全局变量
  • vuex 笔记整理
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 原生Ajax
  • 在Unity中实现一个简单的消息管理器
  • 《码出高效》学习笔记与书中错误记录
  • (4)(4.6) Triducer
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Java数据结构)ArrayList
  • (zt)最盛行的警世狂言(爆笑)
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)Honghu Cloud云架构一定时调度平台
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四) 虚拟摄像头vivi体验
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .cn根服务器被攻击之后
  • .Net Core 笔试1
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 无限分类
  • .net反编译工具
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • []常用AT命令解释()
  • [ACP云计算]易混淆知识点(考题总结)
  • [AIGC] 广度优先搜索(Breadth-First Search,BFS)详解
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BROADCASTING]tensor的扩散机制