- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
??
?
??
网络爬虫在广州地铁二十一号线主控专业数据库管理中的应用
?
?
?
?
?
??
?
?
?
摘要:本文从安全生产实际需求出发,针对广州地铁二十一号线批量管理数据库队列的需求,利用PYTHON爬虫技术批量获取数据库管理网页的队列阻塞状态,达到及时发现并处理问题的目的。
关键词:综合监控系统;数据库;网络爬虫;PYTHON
1.项目背景
1.1技术背景
广州地铁二十一号线使用DB2作为综合监控系统的数据库,在数据库队列发生阻塞时会导致设备监控异常,进而导致调度无法实时监控现场设备状态。
DB2提供管理网页,可以从网页中查看队列阻塞情况,在阻塞情况发生初期,可以通过重启等手段解决,防止情况进一步恶化。
网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
爬虫流程图
DB2数据库管理网页相对互联网网页来讲,网页结构稳定且不会发生变化,非常适合使用爬虫技术稳定获取阻塞状态。
1.2实际需求
广州地铁二十一号线曾发生过因为数据库队列阻塞严重导致调度监控异常的情况,在手动清理阻塞后导致部分历史记录丢失。
结合值班每日设备巡视工作,在每天的巡视任务中增加查看当前队列情况的任务,减少严重阻塞的发生。
通过编写PYTHON爬虫脚本,在巡检人员需要时巡行一次该脚本即可在1分钟内获取到全线二十多个车站的数据库状态,相对于传统的逐个站点登录网页的方式来说效率更高。
1.3整体情况
爬虫脚本涉及二十一号线全线20个车站,每个车站两台服务器,由于两台服务设置的浮点IP,因此每个车站仅需访问一个IP,编写一个循环,遍历访问各个车站的IP。
2.改造过程
程序编写使用Selenium来实现,Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,MozillaFirefox,Safari,GoogleChrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。
使用Pycharm作为开发软件,使用PYTHON包主要有Selenium、time、requests、openpyxl,Selenium负责浏览器模拟运行,最终程序使用无窗口形式运行,time用作定时器,避免频繁访问网页和保留网页加载时间,requests用于请求网页及相关处理,openpyxl负责Excel数据交互,各站点的IP信息存储在Excel文件中,可以根据现场情况进行修改,获取到的阻塞信息存储在本地Excel文件中,方便存档和历史查询。
主程序结构:
程序代码:
importopenpyxl
fromopenpyxl.stylesimportPatternFill
fromseleniumimportwebdriver
fromselenium.webdriver.chrome.optionsimportOptions
importtime
deflogin():
#创建一个参数对象,用来控制chrome以无界面模式打开
chrome_options=Options()
chrome_options.add_argument(--headless)
chrome_options.add_argument(--disable-gpu)
driver=webdriver.Chrome(
executable_path=rC:\ProgramFiles\Google\Chrome\Application\chromedriver.exe,
options=chrome_options)
wb1=openpyxl.Workbook()
ws1=wb1.a
文档评论(0)