国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于定制主題網(wǎng)絡(luò)爬蟲技術(shù)的不良信息檢測(cè)系統(tǒng)設(shè)計(jì)

2022-07-07 12:42沈冰周亮李娟馮平劉瑾
電子技術(shù)與軟件工程 2022年5期
關(guān)鍵詞:爬蟲網(wǎng)頁(yè)模塊

沈冰 周亮 李娟 馮平 劉瑾

(成都市成華區(qū)網(wǎng)絡(luò)信息中心 四川省成都市 610051)

隨著5G網(wǎng)絡(luò)和大數(shù)據(jù)信息化的飛速發(fā)展,互聯(lián)網(wǎng)中的信息數(shù)量以指數(shù)級(jí)速度增長(zhǎng)?;ヂ?lián)網(wǎng)中一方面蘊(yùn)含著大量權(quán)威、真實(shí)、科學(xué)有益的信息,拓寬了我們的知識(shí)結(jié)構(gòu)和交往渠道,但另一方面,社交平臺(tái)中同時(shí)也充斥著大量宣染暴力、淫穢、賭博、邪教等不良信息,造成了網(wǎng)絡(luò)信息安全危機(jī)。面對(duì)網(wǎng)絡(luò)輿情風(fēng)險(xiǎn)日驅(qū)高度復(fù)雜化、常態(tài)化,如何從海量的互聯(lián)網(wǎng)信息中,快速高效地篩選出某個(gè)主題不良信息成為輿情工作人員的重大挑戰(zhàn)和亟待解決的現(xiàn)實(shí)難題。

1 研究背景

網(wǎng)絡(luò)信息作為網(wǎng)絡(luò)社會(huì)的體溫計(jì)與晴雨表,是維護(hù)社會(huì)穩(wěn)定的重要依據(jù)之一,也是防范與化解意識(shí)形態(tài)安全重要支撐。當(dāng)前,我國(guó)各級(jí)政府部門對(duì)網(wǎng)絡(luò)不良信息的治理逐漸從早期的“隨意性”“人治性”“經(jīng)驗(yàn)性”過渡到“制度性”“規(guī)范性”“科學(xué)性”。但是面對(duì)網(wǎng)絡(luò)海量信息,人工搜索采集數(shù)據(jù)耗費(fèi)時(shí)間,爬蟲技術(shù)可以利用計(jì)算機(jī)自動(dòng)地采集大規(guī)模數(shù)據(jù)。為此,在海量互聯(lián)網(wǎng)數(shù)據(jù)和專用信息采集間需要構(gòu)建一個(gè)特殊的信息篩選機(jī)制,提高專用信息獲取效率。網(wǎng)絡(luò)爬蟲(Cralwer)正可以在數(shù)據(jù)采集和分析上發(fā)揮有效作用。與通用網(wǎng)絡(luò)爬蟲不同,主題網(wǎng)絡(luò)爬蟲可以根據(jù)特定算法按照預(yù)先設(shè)定的主題抓取與主題相關(guān)頁(yè)面,它不是抓取整個(gè)互聯(lián)網(wǎng)的網(wǎng)頁(yè),而是專門用于對(duì)某個(gè)主題的網(wǎng)頁(yè)進(jìn)行數(shù)據(jù)采集。為提高專用信息采集的精確性,本文設(shè)計(jì)一種基于定制主題網(wǎng)絡(luò)爬蟲技術(shù)的不良信息檢測(cè)系統(tǒng),旨在為相關(guān)人員提供有效的借鑒和參考。

2 爬蟲原理與過程

網(wǎng)絡(luò)爬蟲是指一種從互聯(lián)網(wǎng)上爬取信息的程序或者腳本,是加強(qiáng)互聯(lián)網(wǎng)不良信息監(jiān)控管理的基礎(chǔ)。世界上最早的網(wǎng)絡(luò)爬蟲程序是Matthew Gray于1993年編寫的,被后人稱為“萬(wàn)維網(wǎng)漫游者”,是革命性的創(chuàng)新。網(wǎng)絡(luò)爬行程序從一個(gè)或若干初始網(wǎng)頁(yè)的URL(Uniform Resource Locator)開始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止,所有被爬蟲抓取的網(wǎng)頁(yè)將會(huì)被進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索,同時(shí)網(wǎng)頁(yè)信息儲(chǔ)存到數(shù)據(jù)庫(kù)中。既定爬取策略有廣度優(yōu)先、深度優(yōu)先等。其框架結(jié)構(gòu)流程如圖1所示。

圖1:爬蟲基本框架結(jié)構(gòu)流程

3 主題網(wǎng)絡(luò)爬蟲

通用爬蟲又稱全網(wǎng)爬蟲(Scalable Web Crawler),爬行對(duì)象從一些種子 URL擴(kuò)充到整個(gè)Web,能盡最大可能的采集信息數(shù)據(jù)。這類網(wǎng)絡(luò)爬蟲的爬行范圍和數(shù)量巨大,對(duì)于爬行速度和存儲(chǔ)空間要求較高,占用較多的儲(chǔ)存空間和網(wǎng)絡(luò)帶寬資源,爬取網(wǎng)頁(yè)的效率低下。在實(shí)際工作實(shí)踐中,不希望收集到一些無(wú)關(guān)信息,迫切需要高速、高效地爬取與主題關(guān)聯(lián)度比較高的網(wǎng)頁(yè),這就可以用到主題爬蟲技術(shù),提高信息采集率的有效性。通過對(duì)定制主題網(wǎng)絡(luò)爬蟲技術(shù)進(jìn)行探析,根據(jù)不良信息特點(diǎn),遇到相關(guān)敏感詞語(yǔ),如淫穢、賭博、色情、邪教、暴力、政治領(lǐng)導(dǎo)人等關(guān)鍵詞,判斷是否為違規(guī)網(wǎng)站,從而提高信息篩選精確度,減少系統(tǒng)負(fù)載,提高運(yùn)行爬行效率。主題爬蟲和通用爬蟲相比,就是在通用爬蟲的基礎(chǔ)上,增加了 URL 評(píng)價(jià)和主題相關(guān)度判斷,按照系統(tǒng)設(shè)定的主題,從既定的初始地址種子集URL開始,按照特定的計(jì)算方法,分析爬行網(wǎng)頁(yè)的主題相關(guān)度,只需要爬行與主題相關(guān)的頁(yè)面,把與主題不相關(guān)的網(wǎng)頁(yè)過濾去掉,將相關(guān)的主題網(wǎng)頁(yè)儲(chǔ)存到數(shù)據(jù)庫(kù)中,相應(yīng)的鏈接放進(jìn)待爬行的 URL隊(duì)列中,循環(huán)往復(fù)上述過程,直到符合系統(tǒng)設(shè)定的條件為止。主題爬蟲框架流程如圖2所示。主題爬蟲能快速的爬取與主題相關(guān)度高的網(wǎng)頁(yè),提高網(wǎng)頁(yè)采集的覆蓋率和網(wǎng)頁(yè)的利用率。

圖2:主題爬蟲流程結(jié)構(gòu)

4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

4.1 架構(gòu)設(shè)計(jì)

主題網(wǎng)絡(luò)爬蟲技術(shù)的關(guān)鍵就是對(duì)互聯(lián)網(wǎng)信息的有效采集。采集范圍主要包括當(dāng)下熱門社交平臺(tái),如:知乎、搜狗、新浪新聞、微博、微信公眾號(hào)、網(wǎng)易新聞、搜狐新聞、360、鳳凰、百度等網(wǎng)站。借鑒OSI(Open System Interconnection Reference Model)網(wǎng)絡(luò)模型,本系統(tǒng)構(gòu)架從下到上可具體分為數(shù)據(jù)采集層、數(shù)據(jù)分析層、數(shù)據(jù)存儲(chǔ)層和應(yīng)用層。上層使用下層的各種服務(wù),每一層負(fù)責(zé)解決一部分問題,通過各層的協(xié)作提供整體解決方案。從邏輯上看,數(shù)據(jù)源信息經(jīng)過數(shù)據(jù)采集、數(shù)據(jù)清洗、深度分析、任務(wù)調(diào)度、主題識(shí)別、數(shù)據(jù)存儲(chǔ)等環(huán)節(jié)后送與系統(tǒng)運(yùn)用層進(jìn)行調(diào)用顯示。整個(gè)系統(tǒng)采用模塊化設(shè)計(jì),兼容Linux、Windows等多平臺(tái)操作系統(tǒng)和Mysql、DB2等主流SQL數(shù)據(jù)庫(kù)。

4.1.1 采集層

采集層位于平臺(tái)的底部,主要完成域名解析、數(shù)據(jù)裝載、數(shù)據(jù)轉(zhuǎn)換、隊(duì)列管理等功能。為了提高采集效率,可通過搭建主題網(wǎng)絡(luò)爬蟲集群服務(wù)器來(lái)實(shí)現(xiàn)。首先構(gòu)建自己的IP地址池,之后模擬用戶訪問行為,最后不間斷掃描和監(jiān)控網(wǎng)絡(luò)平臺(tái),將采集數(shù)據(jù)、用戶行為和動(dòng)作日志進(jìn)行存儲(chǔ),再經(jīng)上下層數(shù)據(jù)接口傳送給分析層進(jìn)行數(shù)據(jù)挖掘、分析和識(shí)別。

4.1.2 分析層

數(shù)據(jù)分析層的作用是對(duì)數(shù)據(jù)進(jìn)行關(guān)聯(lián)、挖掘、交互、識(shí)別分析等。經(jīng)批處理、流式計(jì)算等方式對(duì)獲取的數(shù)據(jù)信息進(jìn)行二次加工,而后將處理過的數(shù)據(jù)傳給存儲(chǔ)層,再供運(yùn)用層調(diào)用輸出結(jié)果。

4.1.3 存儲(chǔ)層

數(shù)據(jù)存儲(chǔ)管理模塊包含存儲(chǔ)、發(fā)布以及檢索功能。存儲(chǔ)層將下層(分析層)送來(lái)的數(shù)據(jù)歸類為元數(shù)據(jù)、標(biāo)準(zhǔn)庫(kù)數(shù)據(jù)和其他數(shù)據(jù)等。

4.1.4 運(yùn)用層

將分析處理好的信息通過系統(tǒng)具體的業(yè)務(wù)運(yùn)用進(jìn)行輸出。系統(tǒng)架構(gòu)如圖3所示。

圖3:系統(tǒng)架構(gòu)圖

4.2 功能和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

根據(jù)上面的架構(gòu)設(shè)計(jì),本文基于主題網(wǎng)絡(luò)爬蟲技術(shù)的不良信息檢測(cè)系統(tǒng)具體功能實(shí)現(xiàn)設(shè)計(jì)可分為:信息采集模塊、信息監(jiān)測(cè)模塊、信息分析模塊、信息顯示模塊。

4.2.1 信息采集模塊

完成數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)裝載等,包括采集時(shí)間管理、地址庫(kù)管理、關(guān)鍵詞管理。

4.2.2 信息分析模塊

信息分析模塊是指將信息采集后通過流式處理對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)統(tǒng)計(jì)、主題識(shí)別等,經(jīng)過分析,找出某網(wǎng)頁(yè)中不良信息并將其URL、網(wǎng)站名稱等關(guān)鍵信息記錄到數(shù)據(jù)庫(kù)中。

4.2.3 信息顯示模塊

經(jīng)分析模塊處理過含有不良信息的URL、網(wǎng)站名稱,會(huì)在系統(tǒng)的醒目位置顯示,以頁(yè)面閃動(dòng)的形式進(jìn)行重點(diǎn)提醒。

4.2.4 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如表1所示,包括時(shí)間、任務(wù)名稱、關(guān)鍵詞、平臺(tái)、鏈接、網(wǎng)頁(yè)詳情等。通過這些設(shè)計(jì)使主題網(wǎng)絡(luò)爬蟲系統(tǒng)在運(yùn)用層可直觀清晰地看出篩選后含有的不良關(guān)鍵字的網(wǎng)頁(yè)信息。

表1:數(shù)據(jù)結(jié)構(gòu)表

4.3 系統(tǒng)實(shí)現(xiàn)和仿真

對(duì)比Python、C、C++、Java各種主流語(yǔ)言特點(diǎn),Python比C更加簡(jiǎn)單,比C++更容易上手,比Java更加簡(jiǎn)潔,而且代碼易讀性強(qiáng),因此本系統(tǒng)基于Python技術(shù)構(gòu)建,部分關(guān)鍵代碼塊如下:

(1)獲取網(wǎng)頁(yè)詳細(xì)信息;

(2)分析頁(yè)面內(nèi)容;

(3)儲(chǔ)存顯示信息;

(4)用戶代理User-Agent請(qǐng)求頭。

import requests #引入 requests等各類模塊

import pymysql

import time

import json

import traceback

#獲取網(wǎng)頁(yè)詳細(xì)信息def getHTMLText(url):

url="https://www.baidu.com/"#設(shè)置要請(qǐng)求的url值,以百度為例

Headers={'User-Agent':'Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko)Chrome/64.0.3282.119 Safari/537.36'}:#為了更好的偽造自己是瀏覽器訪問的,需要加一個(gè)頭,讓自己看起來(lái)是通過瀏覽器訪問

選擇特定數(shù)據(jù)源平臺(tái)如搜狗知乎、新浪新聞、百度等,經(jīng)模擬器仿真測(cè)試,部分含有敏感詞和不良信息爬蟲結(jié)果網(wǎng)頁(yè)如圖4-1(含時(shí)間、名稱、關(guān)鍵詞、平臺(tái)信息)和圖4-2(含網(wǎng)址鏈接、詳細(xì)信息)所示。

圖4 -1:爬蟲結(jié)果圖

圖4 -2:爬蟲結(jié)果圖

4.4 關(guān)鍵問題

4.4.1 爬蟲被封

在實(shí)際運(yùn)行爬蟲時(shí)發(fā)現(xiàn),個(gè)別網(wǎng)站Robots協(xié)議限制較嚴(yán)格,遇到某些網(wǎng)站爬取過多就會(huì)出現(xiàn)異常甚至可能會(huì)封掉IP,原因是網(wǎng)站進(jìn)行了來(lái)源審查。即平臺(tái)檢測(cè)出爬蟲腳本程序后,服務(wù)器便自動(dòng)配置禁止某個(gè)IP訪問。此時(shí)要用到反爬蟲技術(shù),通過修改請(qǐng)求頭User-Agent來(lái)偽裝瀏覽器進(jìn)行請(qǐng)求,恢復(fù)正常訪問網(wǎng)站功能。另外,還可以添加幾秒延時(shí),使訪問瀏覽器的行為更接近于自然人正常式訪問。

4.4.2 多線程爬蟲

默認(rèn)情況下,一個(gè)程序只有一個(gè)線程,代碼是依次線性執(zhí)行的,單線程爬蟲每次只訪問一個(gè)頁(yè)面,不能并發(fā)執(zhí)行。為了提高信息的采集效率,充分利用資源,爬蟲程序應(yīng)進(jìn)行并發(fā)采集。多進(jìn)程適合CPU密集運(yùn)算型程序,每個(gè)進(jìn)程都有單獨(dú)的GIL,能實(shí)現(xiàn)真正意義上的并行執(zhí)行,所以Python中的多進(jìn)程的執(zhí)行效率優(yōu)于多線程。Python提供多進(jìn)程庫(kù)multiprocessing,用來(lái)處理與多進(jìn)程相關(guān)的操作。Multiprocessing內(nèi)有dummy模塊,利用其中的Pool類來(lái)實(shí)現(xiàn)線程池,從而有效提高信息采集效率。

5 結(jié)語(yǔ)

隨著互聯(lián)網(wǎng)、大數(shù)據(jù)等信息技術(shù)的飛速發(fā)展,Python爬蟲技術(shù)也越來(lái)越成熟,被廣泛應(yīng)用在Web開發(fā)、人工智能和嵌入式等很多領(lǐng)域?;诙ㄖ浦黝}網(wǎng)絡(luò)爬蟲技術(shù)的不良信息檢測(cè)系統(tǒng),利用Python標(biāo)準(zhǔn)庫(kù)和第三方常用庫(kù),對(duì)不良信息信息進(jìn)行了定向爬取,能快速高效發(fā)現(xiàn)不良信息,方便管理部門及時(shí)處置有害信息的傳播。經(jīng)過仿真實(shí)驗(yàn)證明,爬蟲可以根據(jù)用戶的需求快速抓取目標(biāo)數(shù)據(jù)信息,能夠有選擇性的進(jìn)行網(wǎng)頁(yè)訪問,有助于用戶快速精準(zhǔn)地獲取所需信息,具有一定的現(xiàn)實(shí)意義。后期需要完善的部分還有許多,例如Robots一旦發(fā)生了變化,就需要及時(shí)更新爬蟲的解析規(guī)則,以確保爬蟲的正常運(yùn)行。

猜你喜歡
爬蟲網(wǎng)頁(yè)模塊
利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
28通道收發(fā)處理模塊設(shè)計(jì)
“選修3—3”模塊的復(fù)習(xí)備考
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)