基于网络爬虫的天气查询系统
设计文档
- 系统名称:基于网络爬虫的天气查询系统
- 文档作者:张乐
- 创作时间:2024.7.30
- 最新修改时间:2024.7.30
- 最新版本号: 0.1
- 背景描述
该系统可以基于linux操作系统通过模拟http协议给对方服务器发送相应请求报文,从而获得相应的响应报文,能够方便客户使用该系统来方便的查询相应时间段的天气情况,主要包括2部分功能,一是获取当天天气情况,而是获取包括当天在内的未来7天天气情况。
- 客户名称: T. Liu
- 开发者名称:乐桑
- 概要设计文档
2.1系统结构图
2.2模块介绍:
- 字符界面交互模块(控制台): 主要用于用户输入选项方便操作控制器工作,以及打印辅助操作的信息。
- 用户要求匹配模块: 用于匹配用户的操作指令选项,使查询报文模块的准确工作。
- 查询报文模块: 主要根据匹配到的用户命令,模拟http协议向服务器发送请求报文,再接收服务器的响应报文,再将加工过后的响应报文送到响应报文处理模块解析。
- 处理信息整合模块:调用响应报文处理模块,整合处理出的单个信息并展示到字符界面
- 响应报文处理模块: 受处理信息整合模块不断调用,使用cJSON函数接口处理出相应的单个信息。
- 服务器:服务端,建立连接后可以接收请求报文并返回响应报文。
- 日志模块: 选择危险等级,记录全局的打印信息,并保存进相应文件,文件每天会创建相应日期名称的新文件,并每满30天清空日志文件。
- 详细设计文档
- 字符界面输入与显示
- 字符界面输入与显示
Void showmenu(void)等函数通过主函数的逻辑共同实现;
流程图:
-
- 用户要求匹配模块
通过主函数中的scanf函数输入和int choose(int i)函数实现
-
- 查询报文模块
Send_inf_init(char *ip,int post);该函数主要用来初始化和与服务器创建tcp连接;
Int Requsetinf(char jbuff,char datety,char *city);该函数主要通过匹配到的城市信息等报文需求信息向jbuff中写入截取后的响应报文信息。
-
- 响应报文处理模
Void Todayweather(void);
Void futureweather(void);根据用户索要查询的日期类型不同,这两个函数可以接受相应报文,并不断调用报文处理模块,并整合处理信息并打印。
-
- 日志模块
Int loginit(void):返回int型的文件描述符便于操作初始化的日志文件。
Int logwrite(int leve,int fd,char *ifo):用于向日志文件写相应危险等级和信息的日志。
Int Logclose(int fd):关闭日志文件。
Int dltlog(void):用于定期清理日志文件。