張 元
(華北科技學(xué)院,北京 東燕郊 065201)
爬蟲(chóng)技術(shù)因其能夠快速主動(dòng)地采集數(shù)據(jù)被廣泛應(yīng)用于各行各業(yè)當(dāng)中。閆志國(guó)等[1]使用爬蟲(chóng)技術(shù)對(duì)銷售藥品的網(wǎng)店進(jìn)行數(shù)據(jù)采集并進(jìn)行分析,獲取藥品銷售情況,為顧客網(wǎng)購(gòu)藥品時(shí)提供幫助。曹睿娟等[2]為了探究如何應(yīng)對(duì)城市內(nèi)澇時(shí)的網(wǎng)絡(luò)輿情,通過(guò)以真實(shí)城市內(nèi)澇事件作為樣本,使用爬蟲(chóng)技術(shù)動(dòng)態(tài)采集城市內(nèi)澇時(shí)網(wǎng)絡(luò)輿情數(shù)據(jù),經(jīng)過(guò)對(duì)數(shù)據(jù)分析后得出了城市內(nèi)澇時(shí)網(wǎng)絡(luò)輿情關(guān)注的重點(diǎn)內(nèi)容及其演化過(guò)程,為城市內(nèi)澇時(shí)網(wǎng)絡(luò)輿情的應(yīng)對(duì)提供了幫助。于鳳芹等[3]通過(guò)運(yùn)用爬蟲(chóng)技術(shù)采集商業(yè)銀行金融科技發(fā)展的相關(guān)數(shù)據(jù),并且借助動(dòng)態(tài)面板模型和多重中介效應(yīng)模型分析得出了金融科技與商業(yè)銀行盈利能力間的關(guān)系及傳導(dǎo)機(jī)制。饒加旺等[4]運(yùn)用爬蟲(chóng)技術(shù)采集了網(wǎng)上近期以智慧城市為關(guān)鍵詞的各類研究數(shù)據(jù),通過(guò)構(gòu)建智慧城市文本庫(kù)與分類模型,深入分析了智慧城市的研究主題、熱點(diǎn)及現(xiàn)狀,指出了當(dāng)前智慧城市建設(shè)中的問(wèn)題,為智慧城市的建設(shè)提供了參考。目前行業(yè)信息透明化的程度在不斷增加,企業(yè)在安全評(píng)價(jià)過(guò)程中所需要的指標(biāo)數(shù)據(jù)大多可以在各企業(yè)對(duì)應(yīng)網(wǎng)站內(nèi)采集到,因此爬蟲(chóng)技術(shù)也可以應(yīng)用在安全評(píng)價(jià)指標(biāo)數(shù)據(jù)主動(dòng)采集階段。
企業(yè)在進(jìn)行安全評(píng)價(jià)時(shí)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的采集分為被動(dòng)采集和主動(dòng)采集,在過(guò)去很長(zhǎng)一段時(shí)間受制于技術(shù)等相關(guān)因素,安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的采集大多依賴于被動(dòng)式采集,傳統(tǒng)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的被動(dòng)采集容易使安全評(píng)價(jià)結(jié)果具有主觀性和滯后性,同時(shí)還造成安全評(píng)價(jià)的低效率,而現(xiàn)代企業(yè)要求安全評(píng)價(jià)具有客觀性、及時(shí)性、高效性,顯然繼續(xù)對(duì)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)進(jìn)行被動(dòng)采集已經(jīng)不能滿足企業(yè)的需求,故實(shí)現(xiàn)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)主動(dòng)采集十分必要。
隨著互聯(lián)網(wǎng)的不斷發(fā)展以及大數(shù)據(jù)時(shí)代的到來(lái),從大數(shù)據(jù)中獲取有價(jià)值的信息數(shù)據(jù),已經(jīng)是目前熱門(mén)的研究及實(shí)踐方向的一種。Python是該領(lǐng)域中使用較多的程序語(yǔ)言,成為數(shù)據(jù)采集過(guò)程中不可或缺的工具,原因就是Python技術(shù)庫(kù)具有突出的計(jì)算能力和豐富的計(jì)算方法。對(duì)于安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的主動(dòng)采集,主要屬于對(duì)非結(jié)構(gòu)化數(shù)據(jù)的采集,因此可以采用爬蟲(chóng)技術(shù)來(lái)實(shí)現(xiàn)這一目標(biāo),具體是通過(guò)數(shù)據(jù)采集與存儲(chǔ)、數(shù)據(jù)量化、數(shù)據(jù)預(yù)處理來(lái)得到量化的相關(guān)安全評(píng)價(jià)指標(biāo)數(shù)據(jù),來(lái)完成安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的采集工作。
運(yùn)用爬蟲(chóng)技術(shù)實(shí)現(xiàn)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)采集的過(guò)程如下,第一步是使用Xpath Helper訪問(wèn)并返回DOM的根節(jié)點(diǎn),第二步是運(yùn)用Scrapy框架爬取煤企網(wǎng)站中相關(guān)的數(shù)據(jù),第三步中對(duì)于數(shù)據(jù)的存取運(yùn)用了Sqlalchemy引擎,第四步數(shù)據(jù)清洗使用的是Numpy、Pandas庫(kù)中的相關(guān)函數(shù),完成上述操作最終得到有效數(shù)據(jù)。
Scrapy框架編寫(xiě)的目的是根據(jù)用戶需求爬取網(wǎng)站數(shù)據(jù),其可以廣泛應(yīng)用于數(shù)據(jù)挖掘和信息處理中。Scrapy框架主要由調(diào)度器、下載器、爬蟲(chóng)和實(shí)體管道、Scrapy引擎五大組件構(gòu)成[5-6]。調(diào)度器的功能有兩點(diǎn),分別是確定下一個(gè)抓取的網(wǎng)址和對(duì)網(wǎng)址進(jìn)行去重處理,調(diào)度器可由用戶自主設(shè)置。Scrapy下載器的功能是下載網(wǎng)頁(yè)內(nèi)容。用戶可以根據(jù)自己的需求定制爬蟲(chóng),爬蟲(chóng)能夠執(zhí)行兩個(gè)操作,一個(gè)是向目標(biāo)網(wǎng)頁(yè)爬取信息,另一個(gè)是可以從目標(biāo)網(wǎng)頁(yè)中提取出鏈接,讓Scrapy繼續(xù)抓取下一個(gè)網(wǎng)頁(yè)。實(shí)體管道負(fù)責(zé)處理爬蟲(chóng)從網(wǎng)頁(yè)中抽取的實(shí)體,它的主要的功能有三個(gè),分別是持久化實(shí)體、驗(yàn)證實(shí)體的有效性和清除不需要的信息[7-8]。
圖1 Scrapy爬蟲(chóng)框架
2.2.1 安全評(píng)價(jià)指標(biāo)數(shù)據(jù)采集
前期調(diào)研階段,通過(guò)對(duì)《企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化基本規(guī)范》、《職業(yè)健康安全管理體系》等相關(guān)法律法規(guī)進(jìn)行研究[9-10],在參考相關(guān)文獻(xiàn)基礎(chǔ)上形成通用安全評(píng)價(jià)指標(biāo)體系包括7個(gè)一級(jí)指標(biāo),19個(gè)二級(jí)指標(biāo),7個(gè)一級(jí)指標(biāo)具體包括:組織所處的環(huán)境、領(lǐng)導(dǎo)作用和員工參與、策劃、支持、運(yùn)行、績(jī)效評(píng)價(jià)和改進(jìn)。其中組織所處的環(huán)境包含四個(gè)二級(jí)指標(biāo)分別是組織及其所處的環(huán)境、員工需求和期望、管理體系的范圍、管理體系。領(lǐng)導(dǎo)作用和員工參與包含四個(gè)二級(jí)指標(biāo)分別是管理層承諾、方針、職責(zé)與權(quán)限、員工參與。策劃包含兩個(gè)二級(jí)指標(biāo)分別是應(yīng)對(duì)風(fēng)險(xiǎn)的措施、目標(biāo)及其策劃。支持包含五個(gè)二級(jí)指標(biāo)分別是資源、能力、意識(shí)、溝通、文件化信息。運(yùn)行包含兩個(gè)二級(jí)指標(biāo)是危險(xiǎn)源辨識(shí)和風(fēng)險(xiǎn)控制、應(yīng)急準(zhǔn)備和響應(yīng)???jī)效評(píng)價(jià)包含三個(gè)二級(jí)指標(biāo)分別是績(jī)效測(cè)量和監(jiān)視、內(nèi)部審核、管理評(píng)審。改進(jìn)包括兩個(gè)二級(jí)指標(biāo)分別是事件、不符合和糾正措施、持續(xù)改進(jìn)。根據(jù)安全評(píng)價(jià)指標(biāo)體系設(shè)計(jì)出如圖1所示的數(shù)據(jù)表結(jié)構(gòu)。選擇某煤企官方網(wǎng)站及第三方統(tǒng)計(jì)網(wǎng)站作為數(shù)據(jù)來(lái)源。
表1 統(tǒng)一字段數(shù)據(jù)表結(jié)構(gòu)
安全評(píng)價(jià)指標(biāo)具體信息的采集過(guò)程如下:首先,當(dāng)進(jìn)入指定網(wǎng)頁(yè)內(nèi),通過(guò)網(wǎng)頁(yè)源碼查看頁(yè)面內(nèi)所有的信息標(biāo)簽,找到用戶所需的信息標(biāo)簽,進(jìn)而爬取該信息標(biāo)下用戶所需的數(shù)據(jù)。然后,通過(guò)使用相關(guān)插件獲取已爬取數(shù)據(jù)的標(biāo)簽間的關(guān)系,并且對(duì)已爬取數(shù)據(jù)進(jìn)行正誤檢驗(yàn)。第三個(gè)操作是在不違法違規(guī)的前提下向Headers中加入代理IP地址,原因是一部分網(wǎng)站存在反爬蟲(chóng)機(jī)制。最后,使用SqlAlchemy對(duì)數(shù)據(jù)進(jìn)行操作。
2.2.2 安全評(píng)價(jià)指標(biāo)數(shù)據(jù)量化
存在部分安全評(píng)價(jià)指標(biāo)并非以定量形式存在而是以文字描述的形式,對(duì)于這類數(shù)據(jù)應(yīng)結(jié)合企業(yè)管理實(shí)際的現(xiàn)狀,分析數(shù)據(jù)并使用一定方法使其量化,數(shù)值范圍介于0到1之間,使其經(jīng)過(guò)采集后以定量的形式存儲(chǔ)于數(shù)據(jù)庫(kù),以便于進(jìn)行后續(xù)的安全評(píng)價(jià)。
2.2.3 安全評(píng)價(jià)指標(biāo)數(shù)據(jù)清洗
安全評(píng)價(jià)指標(biāo)數(shù)據(jù)清洗階段主要包括對(duì)缺失值的檢驗(yàn),去除所采集到的重復(fù)數(shù)據(jù)以及統(tǒng)一所采集到數(shù)據(jù)的數(shù)據(jù)格式等。
在數(shù)據(jù)清洗階段,首先對(duì)爬取的全部數(shù)據(jù)進(jìn)行檢測(cè),對(duì)于其中的缺失值用pandas中的fillna()方法填充。數(shù)據(jù)去重階段首先確認(rèn)重復(fù)數(shù)據(jù)并計(jì)算其個(gè)數(shù)。為了對(duì)確認(rèn)的重復(fù)數(shù)據(jù)的準(zhǔn)確性進(jìn)行檢驗(yàn),通常的方法是用query()函數(shù)對(duì)任意一個(gè)標(biāo)題執(zhí)行選擇行操作,接著使用count()方法計(jì)算該數(shù)據(jù)表余下的數(shù)據(jù)量,清除數(shù)據(jù)表中的重復(fù)項(xiàng)可使用pandas庫(kù)的drop_duplicates()函數(shù)。當(dāng)需要再次清除數(shù)據(jù)表中重復(fù)項(xiàng)時(shí)可以使用一張新數(shù)據(jù)表。
數(shù)據(jù)格式統(tǒng)一:去除重復(fù)項(xiàng)后的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。表2是數(shù)據(jù)庫(kù)中存儲(chǔ)的部分?jǐn)?shù)據(jù)。
表2 數(shù)據(jù)庫(kù)中部分?jǐn)?shù)據(jù)結(jié)果
2.2.4 小結(jié)
經(jīng)過(guò)以上安全評(píng)價(jià)指標(biāo)的數(shù)據(jù)采集、數(shù)據(jù)量化、數(shù)據(jù)清洗等步驟,即可以得到可用于企業(yè)安全評(píng)價(jià)的有效數(shù)據(jù),完成了安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的主動(dòng)采集,驗(yàn)證了安全評(píng)價(jià)指標(biāo)主動(dòng)采集的可行性和有效性。
(1) 運(yùn)用大數(shù)據(jù)技術(shù)可以實(shí)現(xiàn)安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的主動(dòng)采集,提高了安全評(píng)價(jià)指標(biāo)數(shù)據(jù)的客觀性和公正性,同樣使安全評(píng)價(jià)結(jié)果的客觀性和公正性也得到了提高。
(2) 安全評(píng)價(jià)指標(biāo)主動(dòng)采集相對(duì)于被動(dòng)采集的優(yōu)點(diǎn)在于能夠及時(shí)地對(duì)所采集的指標(biāo)數(shù)據(jù)進(jìn)行更新,避免因信息的滯后性導(dǎo)致安全評(píng)價(jià)的結(jié)果不準(zhǔn)確,提高了安全評(píng)價(jià)的準(zhǔn)確性。
(3) 相較于傳統(tǒng)的安全評(píng)價(jià)指標(biāo)被動(dòng)采集方法,安全評(píng)價(jià)指標(biāo)的主動(dòng)采集更加符合新時(shí)代企業(yè)及社會(huì)對(duì)于生產(chǎn)安全的要求,同時(shí)節(jié)約了人工時(shí)間成本,提高了安全評(píng)價(jià)的效率。
(4) 經(jīng)過(guò)安全評(píng)價(jià)指標(biāo)主動(dòng)采集得到的大量數(shù)據(jù)還可以進(jìn)行更深入的研究,得出指標(biāo)數(shù)據(jù)本身之間的關(guān)聯(lián)性,這又為安全評(píng)價(jià)的研究提供了新的方向。