当前位置: 首页 > 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.项目流程图:

项目流程(部分)

项目内容代码

 

http://www.lryc.cn/news/411424.html

相关文章:

  • OrangePi AI Pro 固件升级 —— 让主频从 1.0 GHz 到 1.6 GHz 的巨大升级
  • 学习大数据DAY27 Linux最终阶段测试
  • ctr管理containerd基本命令
  • rust 初探 -- 路径(path)
  • XXE -靶机
  • vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记
  • 请大家监督:我要开启Python之路,首要任务最简单的搭建环境
  • http协议深度解析——网络时代的安全与效率(1)
  • 类和对象【下】
  • 面向未来的S2B2C电商供应链系统发展趋势与创新探索
  • 【C++】哈希容器
  • milvus - VectorDBBench benchmaker 性能测试工具使用经验
  • Linux上如何分析进程内存分配,优化进程内存占用大小
  • C语言笔记(第n版):知识清单
  • 【香橙派系列教程】(四)基于ARM-Linux架构的语音控制刷抖音项目
  • Java----反射
  • 相似度计算方法
  • Vue 点击markdown页内链接,路由设置不跳转
  • IOday4
  • 智能座舱背后主流车机平台(SA8155/SA8295)的高通Hexagon DSP是什么?
  • linux进程控制——进程等待——wait、waitpid
  • Shell脚本的进程管理
  • JLink烧录失败
  • Monorepo简介
  • SpringBoot打包为jar包,打包前注意事项及打包教程
  • B端系统UI个性化设计:感受定制之美
  • 前端常用 utils 工具封装
  • 项目都做完了,领导要求国际化????--JAVA后端篇
  • 国内备受好评PostgreSQL数据库性能如何?
  • 彻底搞懂前端跨域解决方案