天气预报的爬虫内容打印并存储用户操作
- 系统名称: 基于网络爬虫技术的天气数据查询系统
- 文档作者:清馨
- 创作时间: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
- 终端输入实现对当前或者未来天气的内容进行爬虫
- 使用cjson对爬虫得到的内容键值段进行分段处理。
- 打印在终端,并将用户输入的操作放入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.项目流程图:

项目流程(部分)

项目内容代码







相关文章:
天气预报的爬虫内容打印并存储用户操作
系统名称: 基于网络爬虫技术的天气数据查询系统文档作者:清馨创作时间:2024-7-29最新修改时间:2024-7-29最新版本号: 1.0 1.背景描述 该系统将基于目前比较流行的网络爬虫技术,对网站上(NowAPI…...
OrangePi AI Pro 固件升级 —— 让主频从 1.0 GHz 到 1.6 GHz 的巨大升级
前言 OrangePi AI Pro 最近发布了Ascend310B-firmware 固件包,据说升级之后可以将 CPU 主频从 1.0 GHz 提升至 1.6 GHz,据群主大大说,算力也从原本的 8T 提升到了 12T,这波开发板的成长让我非常的 Amazing 啊!下面就来…...
学习大数据DAY27 Linux最终阶段测试
满分:100 得分:72 目录 一选择题(每题 3 分,共计 30 分) 二、编程题(共 70…...
ctr管理containerd基本命令
1. 创建命名空间 创建名为custom的命令空间 ctr ns create custom2. 导入镜像 把镜像导入到刚刚创建的空间 ctr -n custom images improt restfulapi.tar3. 创建容器 创建一个test_api的容器 ctr -n custom run --null-io --net-host -d --mount typebind,src/etc,dst/ho…...
rust 初探 -- 路径(path)
rust 初探 – 路径Path 路径(Path) 目的:为了在 Rust 的模块中找到某个条目,需要使用 路径两种形式: 绝对路径:从 crate root 开始,使用 crate 名或字面值 crate相对路径:从当前模…...
XXE -靶机
XXE靶机 一.扫描端口 进入xxe靶机 1.1然后进入到kali里 使用namp 扫描一下靶机开放端口等信息 1.2扫描他的目录 二 利用获取的信息 进入到 robots.txt 按他给出的信息 去访问xss 是一个登陆界面 admin.php 也是一个登陆界面 我们访问xss登陆界面 随便输 打开burpsuite抓包 发…...
vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记
下载 npm install html2canvas --save引入 import html2canvas from "html2canvas"; //使用 html2canvasForChars() { // 使用that来存储当前Vue组件的上下文,以便在回调函数中使用 let that this; // 获取DOM中id为"charts"的元素&…...
请大家监督:我要开启Python之路,首要任务最简单的搭建环境
任务说明: 如上图所示,Python稳稳第一,为何?因为Python可以做很多事情,比如:Web开发,网络爬虫,软件开发、数据分析、游戏开发,金融分析,人工智能与机器学习&a…...
http协议深度解析——网络时代的安全与效率(1)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页 目录 写在前面: 本章目的: …...
类和对象【下】
一、类的默认成员函数 默认成员函数从名字就告诉我们何为默认成员函数,即:用户没有实现,编译器默认自动实现的函数。 这时你不禁一喜,还有这好事,编译器给我打工,那么,我们今天都来了解一下都有…...
面向未来的S2B2C电商供应链系统发展趋势与创新探索
S2B2C电商供应链系统的发展趋势及创新方向。首先分析当前市场环境和消费者需求的变化,如个性化消费、即时配送、绿色环保等趋势对供应链系统的影响。随后,预测并讨论未来供应链系统可能的技术革新,如物联网(IoT)在物流…...
【C++】哈希容器
unordered系列关联式容器 在之前的博文中介绍过关联式容器中的map与set,同map与set一样,unordered_set与unordered_set也是关联式容器。 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,查询效率可以达到logN;在…...
milvus - VectorDBBench benchmaker 性能测试工具使用经验
IVF_FLAT (Inverted File with Flat Indexing) 优点: 在数据量适中且维度不是非常高的情况下,IVF_FLAT能提供精确的最近邻搜索结果。 相对简单,易于理解和实现。 缺点: 当数据集非常大时,IVF_FLAT需要大量的内存来存储整个数据集,…...
Linux上如何分析进程内存分配,优化进程内存占用大小
云计算场景下,服务器上内存宝贵,只有尽可能让服务器上服务进程占用更少的内存,方才可以提供更多的内存给虚拟机,卖给云客户。 虚拟化三大件:libvirt、qemu、kvm内存开销不小,可以优化占用更少的内存。如何找到进程内存开销的地方直观重要,以qemu为例说明。 一、查看进…...
C语言笔记(第n版):知识清单
注:本文参考自【C reference - cppreference.com】和【C 语言参考 | Microsoft Learn】,颇有点借花献佛的意味…… C 程序是一系列包含声明的文本文件(通常为头文件和源文件)的序列。它们经过转换成为可执行程序,当操作…...
【香橙派系列教程】(四)基于ARM-Linux架构的语音控制刷抖音项目
【四】基于ARM-Linux架构的语音控制刷抖音项目 文章目录 【四】基于ARM-Linux架构的语音控制刷抖音项目1.语音模块配置1.创建产品2.引脚配置3.词条定义4.添加控制5.发布版本6.烧录固件 2.编程实现语音和开发板通信3.手机接入Linux热拔插1.dmesg命令2.adb调试踩坑问题 3.总结 4.…...
Java----反射
什么是反射? 反射就是允许对成员变量、成员方法和构造方法的信息进行编程访问。换句话来讲,就是通过反射,我们可以在不需要创建其对象的情况下就可以获取其定义的各种属性值以及方法。常见的应用就是IDEA中的提示功能,当我…...
相似度计算方法
一、相似度计算方法 相似度算法是计算两个或多个对象之间相似程度的方法,这些对象可以是文本、图像、音频等不同类型的数据。在计算机科学、信息检索、推荐系统、数据挖掘等领域中,相似度算法具有广泛的应用。 二、应用场景 搜索引擎:用于文…...
Vue 点击markdown页内链接,路由设置不跳转
在路由index.js里添加路由守卫: router.beforeEach((to,from,next)>{//如果是md页内链接“#xxx”,则不跳转const hash window.location.hash;if(hash.startsWith(#)) {next(false);}else{...其他控制代码next();} });当markdown用[标题链接](#标题名…...
IOday4
一、思维导图 二、练习 1、使用父子进程完成两个文件的拷贝,父进程拷贝前一半内容,子进程拷贝后一半内容,子进程结束后退出,父进程回收子进程的资源 #include<myhead.h> int main(int argc, const char *argv[]) {//判断终…...
目标检测实战:从VOC XML到YOLO格式的自动化数据流水线
1. 为什么需要VOC转YOLO格式 在目标检测任务中,数据格式的统一性直接影响着模型训练的效率。VOC(PASCAL VOC)和YOLO是两种最常见的标注格式,但它们的存储方式截然不同。VOC采用XML文件记录目标的类别和边界框坐标,而YO…...
OpenClaw自动化周报生成:Qwen3-32B私有镜像精准提取Git提交记录
OpenClaw自动化周报生成:Qwen3-32B私有镜像精准提取Git提交记录 1. 为什么需要自动化周报生成 每周五下午,我都会面临同样的困扰:需要从零散的Git提交记录中手动整理本周工作内容,再拼凑成一份结构化的周报。这个过程不仅耗时&a…...
蓝牙5.1室内定位精度提升秘籍:iBeacon+AoA技术实战指南
蓝牙5.1室内定位精度提升秘籍:iBeaconAoA技术实战指南 在仓储物流和医疗设备管理等对定位精度要求严苛的场景中,传统蓝牙RSSI定位技术常因多径效应和信号衰减导致2-5米的误差。而蓝牙5.1引入的AoA(到达角)技术,配合iBe…...
OpenClaw安全方案:nanobot本地模型的数据隐私保护实践
OpenClaw安全方案:nanobot本地模型的数据隐私保护实践 1. 为什么选择本地化部署 去年夏天,我接手了一个特殊项目——为一家小型会计师事务所设计自动化财务文档处理方案。最初考虑使用云端AI服务时,客户明确提出了数据隐私的硬性要求&#…...
OpenClaw+Qwen3.5-4B-Claude:5个提升效率的CLI增强技能
OpenClawQwen3.5-4B-Claude:5个提升效率的CLI增强技能 1. 为什么需要CLI增强技能 作为一个长期与终端打交道的开发者,我发现自己每天要重复输入大量相似命令。比如查看日志时要反复输入tail -f加路径,管理Docker时要不断敲docker ps -a。更…...
ARM嵌入式开发:寄存器操作与函数指针实战
## 1. 嵌入式开发中的寄存器操作技巧### 1.1 寄存器地址访问方法 在ARM架构嵌入式开发中,直接操作硬件寄存器是底层开发的核心技能。通过C语言访问特定内存地址的标准做法是使用指针类型转换:c #define GSTATUS1 (*(volatile unsigned int *)0x560000B0)…...
实践指南:如何使用Cisco DefenseClaw保护你的AI Agent安全
一、背景:AI Agent安全面临的新挑战 最近,开源AI代理框架OpenClaw遭遇了大规模供应链攻击,超过800个恶意技能被植入ClawHub技能市场。这个事件被命名为"ClawHavoc",它暴露了AI Agent生态的安全漏洞。 作为开发者&#x…...
YOLOv11涨点改进| 全网独家创新、检测头Head改进篇| CVPR 2026顶会 |使用FAAHead改进YOLOv11的检测头,处理小目标、遮挡小目标检测、旋转目标检测有效涨点,助力高效发论文
一、本文介绍 🔥本文给大家介绍使用CVPR 2026顶会 FAAHead 和 OBB_FAAHead 改进 YOLOv11的检测头,可以有效缓解目标检测中分类分支与框回归分支之间的特征冲突问题,尤其适合旋转目标检测或含明显方向信息的目标检测任务。FAAHead 的核心思想是在检测头阶段先对 RoI 或候选…...
拆解 OA 系统:从需求梳理到核心执行,新手一看就会
你是不是觉得公司的OA系统特别难用?报销要填八百个字段,不知道哪个是必填;请假批完还得自己跑去找下一个人;找一个去年的合同,得翻十几层文件夹。更气人的是,提了意见根本没人管,说系统改不了。…...
不是删改,是升级:百考通智能降重+降AI,让语言更学术、更像“你”
在一个人工智能可以生成论文的时代,最荒诞的现实不是机器冒充人类, 而是人类因写得太像“一篇合格的学术论文”,被当作AI。 2026年,无数普通学子正陷入一场无声的困境: 你没用任何代写,却因逻辑清晰被系统…...
