相关阅读:
Python爬虫中requests下载插件常用方法汇总(一)
一、引言
1.1.背景
对于互联网企业来说,随着业务的不断拓展,公司所运行的项目越来越多,项目业务逻辑也越来越复杂,需要定制化开发的内容也越来越多。
大数据背景下的舆情公司,由于业务需求数据范围广,无法通过一种统一的方式,来解决所有类型数据的采集。随之而来的,就是定制化开发的采集器越来越多,这些采集器的运维越来越繁琐,逐渐影响项目的进度,成为了限制业务发展的瓶颈。
那么,如何解决呢?自动化运维便是正解。
1.2.业务痛点
① 管理分散在各开发人员,解决问题的效率低下;
② 项目越来越复杂,定制开发增多,部署、更新等运维难度骤增;
③ 脚本运行情况、采集数据量等监控难度加大;
④ 由于管理分散,人员流动导致运维难度系数增加;
⑤ 人为操作失误频发,导致
1.3.目标
① 实现部门内容所有服务的自动化部署与监控,不只是采集。初期以采集为主;
② 实现各服务/脚本的统一管理,实时监控异常;
1.4.技术
① 系统使用语言:Java + Python
② 管理后台使用技术:Spring Boot2.X + FreeMarker + X-Admin2.X
③ 运维端:FastAPI +Fabric(2.0版本升级为:Ansible)
1.5.使用范围
① 本版本暂时只支持Linux操作系统的运维;
② Windows系统在后续2.0版本中提供支持;
二、系统概述
1.1.系统描述
开发该系统主要是为了实现采集器、脚本及其他服务的自动化运维管理,包括服务的部署/上传、启动、关闭、参数修改、简单的服务文件的修改等。 同时,实现对服务器、采集器、脚本等服务进行监控,实时发现问题,解决问题。 1.2.结构描述 当前系统主要包括服务器节点管理、项目管理、爬虫管理和任务管理等四个模块,每个模块的具体功能细节如下表所示: 一级功能 二级功能 三级操作 备注 节点管理
节点列表 - 实现对服务器信息的管理
节点环境 开发语言 管理并显示服务器上安装的语言环境 环境依赖 管理服务器上各语言环境插件 节点监控 - 主要监控各服务器的硬盘、CPU、内存等使用情况 拓补图 - 主要用于展示采集相关的所有软硬件关系、结构 项目管理 项目列表 - 主要展示项目信息
爬虫管理
爬虫列表 - 主要展示已经开发或部署的爬虫信息
部署情况 - 显示每个爬虫部署的服务器节点情况
任务列表 - 显示每个爬虫已经或正在处理的任务列表
爬虫文件 - 主要用于在线修改爬虫文件,并同步到所部署节点
运行环境 - 用于管理爬虫运行所需环境,包括安装、卸载等
采集分析 - 展示爬虫采集数据相关的统计信息,用于监控
任务管理 任务列表 - 主要用于查看当前所有爬虫的采集任务信息
1.3.运维接口描述
当部署爬虫时,我们需要把爬虫脚本,上传到相关的服务器节点上。所以,就需要一个能与服务器进行交互的服务接口。
目前采用Fabric来实现,2.0版本时再考虑基于容器的相关技术,如docker等技术。
三、功能模块
1.1.节点管理
该模块主要包括服务器、服务器配置、语言环境,以及各语言环境相关参数等信息的查看、管理等功能。
1.1.1.数据字典设计
数据库字典说明:
① td_idop_servers:服务器节点信息表;
② td_idop_serv_info:服务器节点配置信息表;
③ td_idop_serv_lang_rel:服务器与编程语言关联表;
④ td_idop_serv_lang:编程语言信息表;
⑤ td_idop_serv_lang_plugs:编程语言相关插件表;
⑥ td_idop_serv_monitor_cpu:CPU使用情况监控信息表;
⑦ td_idop_serv_monitor_memory:内存使用情况监控信息表;
⑧ td_idop_serv_monitor_disk:硬盘使用情况监控信息表;
⑨ td_idop_serv_monitor_network:网络收发数据包情况监控表;
1.1.2.功能描述
1.1.2.1.节点列表
主要展示当前所有的服务器节点信息。如:服务器IP、登录信息等。
当监控服务发现服务器异常时,列表中节点名称颜色变为红色,以示预警。
可以查看服务器的基本配置信息包括:内存、CPU、操作系统等信息。
亦可以查看当前服务器上已经安装的开发语言,及执行命令信息.
系统原型如下图所示:
操作说明:
⑩ 查询:根据服务器名称和Ip进行查询;
⑪ 批量删除:可以批量删除服务器节点信息。同时删除服务器节点所属语言、插件等信息;服务器CPU、硬盘、内存及网络等监控信息;删除当前服务器上部署的记录;删除与之相关联任务信息;
⑫ 添加:新增或编辑服务器信息;
1.1.2.2.节点语言环境
该模块主要用于管理服务器上语言环境,以及该语言环境下,已安装的相关插件。如Python环境下已安装的第三方爬虫库。
1.1.2.2.1.开发语言
主要用于管理服务器上的语言环境管理,实现管理界面的一键安装、卸载等。 系统原型如下图所示:
说明:
“√”表示当前服务器已经安装该语言;
“×”表示当前服务器未安装该语言
操作说明:
① 查询:根据服务器Ip进行查询;
② 添加:指添加语言。添加后刷新列表,列表中新增一列信息;
③ 表头“+”:表示对列表中所有的服务器节点进行安装。如果已经安装,则跳过;
④ 行单元格中“+”:表示安装当前服务器安装的当前列语言;
⑤ 行单元格中“×”:表示卸载当前服务器安装的当前列语言;
1.1.2.2.2.环境依赖
该模块主要实现对各服务器节点上,已安装的语言的插件进行管理,以便在管理系统中统一管理。如安装、卸载等。 系统原型如下图所示:
中部树结构说明:
该树形结构中数据来源于服务器信息表,以及其对应的语言表。
操作说明:
① 批量删除:实现对插件的批量删除。同时,服务器上需要卸载该插件;
② 添加:必须先选择中部的树节点下的语言节点,否则不可添加;
③ 编辑:编辑插件信息;如安装、卸载命令等;
④ 安装:在当前选中树节点,所在服务器上安装该插件;
⑤ 卸载:卸载当前选中树节点,所在服务器上的该插件;
1.1.2.3.节点监控
该模块主要用于近实时的监控服务器的内存、CPU、硬盘等信息,以便运维人员实时调整采集策略。
系统原型如下图所示:
中部树结构说明: 该树形结构中数据来源于服务器信息表。
统计图说明:
后台服务每个五分钟获取一次服务器的内存、CPU、硬盘等使用率;以及网络的收发包信息。
1.1.2.4.网络拓扑
该模块主要用于显示当前爬虫全流程中的网络结构。包括:服务器分布、Redis队列部署情况、数据存储情况等。
系统原型如下图所示:
相关推荐
Linux系统、网络反爬虫、监控管理——python自动化运维.html
Python基础,Python高级,数据库,前端,Web,爬虫,Shell与自动化运维 , 测试,人工智能。 一道题目和答案 写到一个 markdown 文件里面。不用考虑文件名的序号。
Python爬虫工程师-自动化测试思维导图,便捷整理思路,Appium移动端自动化测试工具、selenium、Appium工作原理、自动化测试工具安装
内容概要:本资源是一份关于基于Python类的本科和专科毕业论文的写作指南。该指南提供了详细的论文写作步骤和技巧,以及针对Python类的相关主��的研究方向和方法。通过本资源,读者将了解如何选择合适的研究题目、...
Python爬虫之京东自动化购物
详细介绍了网络爬虫和自动化的相关内容,方便初学者系统学习和掌握相关的知识技能
Python网络爬虫工程师系列培训课程(全套详细版).docxPython网络爬虫工程师系列培训课程(全套详细版).docxPython网络爬虫工程师系列培训课程(全套详细版).docxPython网络爬虫工程师系列培训课程(全套详细版)....
山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》.docx山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》.docx山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》.docx山东建筑...
基于爬虫的web自动化测试工具的设计,吴浩帆,,传统的web功能测试工具大多数是“录制”-“回放”模式,测试者需要编写大量的测试脚本,存在门槛高,效率低,维护难等弱点。本文��
一个Java语言写的自动化爬虫工具。运行Java应用,可直接在网页进行爬虫任务配置,可对爬虫任务进行定时触发,爬取内容保存至本地或者数据库中。一个Java语言写的自动化爬虫工具。运行Java应用,可直接在网页进行爬虫...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...
ChromeDriver.exe是一款实用的浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:网络爬虫、自动化...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...
内容概述:ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,在使用时需要与对应的chrome浏览器版本匹配,否则无法驱动。 应用场景:...