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

?

基于Scrapy的工業(yè)漏洞爬蟲設(shè)計(jì)

2017-03-10 21:46孫歆戴樺孔曉昀趙明明
網(wǎng)絡(luò)空間安全 2017年1期
關(guān)鍵詞:爬蟲

孫歆++戴樺++孔曉昀++趙明明

【 摘 要 】 工業(yè)控制系統(tǒng)的漏洞是工業(yè)安全中極其重要的資源信息,也是對(duì)工控系統(tǒng)進(jìn)行威脅分析和安全等級(jí)鑒定的重要依據(jù)。論文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Scrapy的工業(yè)漏洞網(wǎng)絡(luò)爬蟲,能對(duì)工控系統(tǒng)安全漏洞網(wǎng)站上的漏洞信息進(jìn)行抓取和分析,并進(jìn)行結(jié)構(gòu)化處理,為實(shí)際項(xiàng)目開發(fā)提供重要的漏洞數(shù)據(jù)信息。

【 關(guān)鍵詞 】 工業(yè)控制系統(tǒng);工控漏洞;爬蟲;Scrapy

Design of Industrial Vulnerabilities Web Crawler Based on Scrapy

Sun Xin 1 Dai Hua 1 Kong Xiao-yun 2 Zhao Ming-ming 3

(1.Electric Power Research Institute of State Grid Zhejiang Electric Power Company ZhejiangHangzhou 310014;

2.State Grid Zhejiang Electric Power Company ZhejiangHangzhou 310008;

3. Beijing China-power Information Technology Co., Ltd. Beijing 100192)

【 Abstract 】 Industrial control system vulnerabilities are extremely resource information of industrial activities on industrial safety, and they are also an important basis for the threat analysis and safety identification of industrial control system. This paper designed and implemented a web crawler for industrial vulnerabilities that based scrapy framework. The crawler can crawl and analyze vulnerability information on web sites, and provide structured vulnerability imformation for actual projects.

【 Keywords 】 industrial control system;industrial vulnerabilities;web crawler;scrapy

1 引言

互聯(lián)網(wǎng)信息資源的極速增長(zhǎng)使得基于傳統(tǒng)搜索引擎獲取信息的方式越來(lái)越難以滿足人們對(duì)有效信息的獲取要求。而當(dāng)所需的信息體量大時(shí),采用純?nèi)斯げ杉瘮?shù)據(jù)信息更是無(wú)法滿足生產(chǎn)需求。針對(duì)這樣的情況,使用某種自動(dòng)化技術(shù)實(shí)現(xiàn)從互聯(lián)網(wǎng)上自動(dòng)采集符合需求的結(jié)構(gòu)化信息是非常有必要的。

網(wǎng)絡(luò)爬蟲是一種能夠?qū)崿F(xiàn)對(duì)互聯(lián)網(wǎng)信息資源進(jìn)行自動(dòng)采集整理的程序,它彌補(bǔ)了人工采集的缺陷。通過(guò)網(wǎng)絡(luò)爬蟲不僅能夠?yàn)樗阉饕娌杉W(wǎng)絡(luò)信息,而且可以作為定向信息采集器,采集定制網(wǎng)站下的特定信息,如商品信息,漏洞信息等。

2 網(wǎng)絡(luò)爬蟲

2.1 爬蟲概述

網(wǎng)絡(luò)爬蟲[1] (Web Crawler)通常又被稱為網(wǎng)絡(luò)蜘蛛(Web Spider),是一個(gè)能夠自動(dòng)在互聯(lián)網(wǎng)上漫游并可以自動(dòng)下載網(wǎng)頁(yè)進(jìn)行信息結(jié)構(gòu)化提取的程序或者腳本。網(wǎng)絡(luò)爬蟲的特征鮮明[2],主要體現(xiàn)在三個(gè)方面。

(1)強(qiáng)壯性好,網(wǎng)絡(luò)爬蟲的程序具備超強(qiáng)的執(zhí)行力。

(2)智能性好,主要體現(xiàn)在獲取和分析Web頁(yè)面以及利用URL鏈接進(jìn)行爬行等方面。

(3)能夠?qū)eb信息進(jìn)行過(guò)濾存儲(chǔ)等。

網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)及其實(shí)現(xiàn)技術(shù),大致可分成四種[3]類型:通用網(wǎng)絡(luò)爬蟲[4](General Purpose Web Crawler)、聚焦網(wǎng)絡(luò)爬蟲[5](Focused Web Crawler)、增量式網(wǎng)絡(luò)爬蟲[6](Incremental Web Crawler)、深層網(wǎng)絡(luò)爬蟲(Deep Web Crawler)。實(shí)際應(yīng)用過(guò)程中爬蟲系統(tǒng)通常是由幾種爬蟲技術(shù)相結(jié)合實(shí)現(xiàn)的。

2.2 Python與爬蟲

當(dāng)前主流的編程語(yǔ)言都有自己的爬蟲框架,如Java有Nutch、C++有Larbin,Python有Scrapy等。由于本文設(shè)計(jì)的爬蟲是基于Python語(yǔ)言的,所以在這里主要討論運(yùn)用Python語(yǔ)言來(lái)設(shè)計(jì)實(shí)現(xiàn)爬蟲系統(tǒng)。

2.2.1 Urllib與爬蟲

Urllib是python語(yǔ)言的一個(gè)模塊,在編寫爬蟲程序時(shí)主要功能是利用該模塊提供的方法(Urlopen、Urlretrieve)進(jìn)行網(wǎng)頁(yè)下載,再結(jié)合正則表達(dá)式re模塊以及Beautifulsoup模塊對(duì)網(wǎng)頁(yè)上的信息進(jìn)行結(jié)構(gòu)化提取。

2.3.2 Scrapy與爬蟲

Scrapy[7]是一個(gè)基于Twisted[8],可以爬取并結(jié)構(gòu)性提取網(wǎng)站數(shù)據(jù)的異步爬蟲應(yīng)用框架。它用途廣泛,常被應(yīng)用于數(shù)據(jù)挖掘、信息處理等場(chǎng)景。Scrapy 設(shè)計(jì)理念先進(jìn)而簡(jiǎn)單,效率高、可擴(kuò)展性好,可移植性佳(在主流的操作系統(tǒng)平臺(tái)上都具備良好的性能)Scrapy由引擎(Engine)、調(diào)度器(Scheduler)、下載器(Downloader)、蜘蛛(Spiders)和數(shù)據(jù)管道(Item Pipeline)五大部分組成,其中還包括各種輔助中間件(Middlewares)協(xié)同實(shí)現(xiàn)爬蟲的精細(xì)功能。

(1)引擎:Scrapy Engine 是用來(lái)控制整個(gè)爬蟲系統(tǒng)的數(shù)據(jù)處理流程,并進(jìn)行事務(wù)處理的觸發(fā),負(fù)責(zé)接收和轉(zhuǎn)發(fā)其他各個(gè)模塊間的請(qǐng)求和相應(yīng)。

(2)調(diào)度器:Scheduler維護(hù)著爬蟲的爬取優(yōu)先級(jí)隊(duì)列,決定著下一個(gè)要爬取的URL,從Scrapy引擎接收請(qǐng)求并排序加入隊(duì)列,并在引擎發(fā)出請(qǐng)求之后返回響應(yīng)。爬蟲的爬取優(yōu)先級(jí)隊(duì)列是一個(gè)簡(jiǎn)單的內(nèi)存隊(duì)列,爬蟲之間不能共享隊(duì)列,也無(wú)法固化到磁盤,如果發(fā)生錯(cuò)誤或者程序崩潰,隊(duì)列中的所有信息都將丟失,因此每一個(gè)爬蟲都維護(hù)著一個(gè)屬于自己的內(nèi)存隊(duì)列。

(3)下載器:Downloader 主要功能是從引擎處獲取要下載的URL ,然后向服務(wù)器發(fā)送下載請(qǐng)求下載頁(yè)面,通過(guò)下載器中間件(Downloader Middlewares)實(shí)現(xiàn)各種網(wǎng)絡(luò)協(xié)議(如HTTP、FTP等)數(shù)據(jù)的下載,然后將所下載的網(wǎng)頁(yè)內(nèi)容傳遞給蜘蛛(Spiders)進(jìn)行下一步的處理。

(4)蜘蛛:蜘蛛模塊負(fù)責(zé)解析下載的網(wǎng)頁(yè),并抽取需要進(jìn)一步爬取的超鏈接,它是由用戶自己定義的,用戶白定義的每個(gè)蜘蛛都能處理用戶指定的一個(gè)或一組域名,也是說(shuō)用戶通過(guò)蜘蛛來(lái)定義特定網(wǎng)站的抓取和解析規(guī)則。蜘蛛在整個(gè)抓取過(guò)程中的處理流程如下:

首先獲取第一個(gè)URL的初始請(qǐng)求,當(dāng)請(qǐng)求返回后調(diào)取一個(gè)回調(diào)函數(shù)。第一個(gè)請(qǐng)求是通過(guò)調(diào)用start_requests()方法。該方法默認(rèn)從start_urls中的Url中生成請(qǐng)求,并執(zhí)行解析來(lái)調(diào)用回調(diào)函數(shù)。

在回調(diào)函數(shù)中,你可以解析網(wǎng)頁(yè)響應(yīng)并返回項(xiàng)目對(duì)象和請(qǐng)求對(duì)象或兩者的迭代。這些請(qǐng)求也將包含一個(gè)回調(diào),然后被Scrapy下載,然后有指定的回調(diào)處理。

在回調(diào)函數(shù)中,你解析網(wǎng)站的內(nèi)容,同程使用的是Xpath選擇器,并生成解析的數(shù)據(jù)項(xiàng)。

最后,從蜘蛛返回的項(xiàng)目通常會(huì)進(jìn)駐到項(xiàng)目管道。

蜘蛛分析出來(lái)的結(jié)果有兩種:一種是需要繼續(xù)抓取的鏈接;另一種是需要保存的數(shù)據(jù)。兩種結(jié)果是可以混雜在同一個(gè)結(jié)果列表里返回的,引擎會(huì)通過(guò)列表元素的數(shù)據(jù)類型進(jìn)行區(qū)分,數(shù)據(jù)被封裝成Item類型,請(qǐng)求則被封裝成Request類型,Request類型的數(shù)據(jù)會(huì)轉(zhuǎn)發(fā)給調(diào)度器進(jìn)行調(diào)度,下載后通過(guò)指定的回調(diào)函數(shù)處理。

(1)項(xiàng)目管道:Item Pipeline的主要責(zé)任是負(fù)責(zé)處理有蜘蛛從網(wǎng)頁(yè)中抽取的項(xiàng)目,其主要任務(wù)是分析、驗(yàn)證和存儲(chǔ)數(shù)據(jù)。當(dāng)頁(yè)面被蜘蛛解析后,將被發(fā)送到項(xiàng)目管道,并經(jīng)過(guò)幾個(gè)特定的次序處理數(shù)據(jù)操作。數(shù)據(jù)管道中對(duì)數(shù)據(jù)的操作都是由開發(fā)人員自定義的函數(shù)方法,并可以在配置文件中指定其操作順序。對(duì)數(shù)據(jù)信息的處理還包括判定是否需要在項(xiàng)目管道中繼續(xù)執(zhí)行下一步或是直接丟棄掉不處理。

項(xiàng)目管道通常執(zhí)行的過(guò)程有清洗HTML數(shù)據(jù)、驗(yàn)證解析到的數(shù)據(jù)(檢查項(xiàng)目是否包含必要的字段)、檢查是否是重復(fù)數(shù)據(jù)(如果重復(fù)就刪除)、將解析到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)等。

(2)中間件:Middlewares是位于Scrapy引擎和各個(gè)模塊之間的鉤子框架,主要是用來(lái)處理Scrapy引擎和各模塊之間的請(qǐng)求及響應(yīng)。它提供了一個(gè)自定義代碼的方式來(lái)擴(kuò)展Scrapy的功能。Scrapy的中間件有下載器中問(wèn)件、蜘蛛中間件以及調(diào)度器中間件。其中,常用的下載器中間件和蜘蛛中間件如表1所示。

Scrapy處理數(shù)據(jù)的流程步驟。

(1)Scrapy引擎打開一個(gè)初始的域名,并定位到相應(yīng)的蜘蛛處理屬于這個(gè)域名的URL,然后讓蜘蛛獲取第一個(gè)要爬取的URL。

(2)Scrapy引擎從蜘蛛那里獲得第一個(gè)需要爬取的URL,并將該URL包裝成請(qǐng)求并指定響應(yīng)該請(qǐng)求的回調(diào)函數(shù),然后將其發(fā)送給調(diào)度器。

(3)Scrapy引擎向調(diào)度器請(qǐng)求下一步要進(jìn)行爬取的頁(yè)面。

(4)調(diào)度器將下一個(gè)要爬取的URL以請(qǐng)求的方式返回給Scrapy引擎,Scrapy引擎通過(guò)下載器中間件將請(qǐng)求發(fā)送給下載器。

(5)當(dāng)下載器執(zhí)行請(qǐng)求、下載完網(wǎng)頁(yè)以后,下載的頁(yè)面內(nèi)容通過(guò)下載器中間件發(fā)送給Scrapy引擎。

(6)Scrapy引擎在收到下載器的返回的下載數(shù)據(jù)后,通過(guò)蜘蛛中問(wèn)件將響應(yīng)數(shù)據(jù)發(fā)送到蜘蛛進(jìn)行數(shù)據(jù)處理。

(7)蜘蛛解析下載的頁(yè)面并返回網(wǎng)頁(yè)解析后的數(shù)據(jù),然后將抽取出的要繼續(xù)爬取的URL再次封裝成請(qǐng)求發(fā)送給Scrapy引擎。

(8)Scrapy引擎將解析完成的數(shù)據(jù)發(fā)送至數(shù)據(jù)處理流水線,并將新的URL爬取請(qǐng)求繼續(xù)轉(zhuǎn)發(fā)給調(diào)度器。

(9)系統(tǒng)重復(fù)步驟2-8,直到調(diào)度器中沒有新的請(qǐng)求時(shí),關(guān)閉爬蟲。

3 定制工業(yè)漏洞爬蟲系統(tǒng)

在前面已經(jīng)了解Scrapy原理的基礎(chǔ)上,本節(jié)將要設(shè)計(jì)一個(gè)爬蟲系統(tǒng)用于結(jié)構(gòu)化提取工業(yè)控制系統(tǒng)漏洞信息。

3.1 工業(yè)漏洞爬蟲的特點(diǎn)

與傳統(tǒng)的網(wǎng)絡(luò)爬蟲不同,工業(yè)漏洞爬蟲有著特定的爬取需求,其目標(biāo)站點(diǎn)是明確已知的,而且在目標(biāo)站點(diǎn)網(wǎng)頁(yè)上需要提取的結(jié)構(gòu)化信息也是明確的。因此,一般的爬蟲相比,其具有三個(gè)特點(diǎn)。

(1)特定的需求:工業(yè)控制系統(tǒng)相關(guān)的漏洞(簡(jiǎn)稱工控漏洞)主要包括工業(yè)控制系統(tǒng)中PLC、DCS、上位機(jī)軟件等相關(guān)的漏洞信息。因此爬蟲系統(tǒng)的需求定位非常明確,只關(guān)注工控方面的信息即可。

(2)明確的目標(biāo):工業(yè)漏洞爬蟲的的目標(biāo)站點(diǎn)是非常明確的。通過(guò)前期的調(diào)研工作,我們選擇國(guó)家信息安全漏洞共享平臺(tái)中工控系統(tǒng)專題(http://ics.cnvd.org.cn/)和美國(guó)國(guó)家漏洞庫(kù)(https://web.nvd.nist.gov/)兩個(gè)站點(diǎn)作為目標(biāo)站點(diǎn)。

(4)明確的字段:在國(guó)家信息安全漏洞共享平臺(tái)的工控專題站點(diǎn)的頁(yè)面上,對(duì)于一個(gè)具體的漏洞新以表格的形式列出了和漏洞相關(guān)的基本信息。那么,對(duì)于此次的爬蟲系統(tǒng)而言,只需要抓取網(wǎng)頁(yè)上所列出的漏洞屬性信息,比如漏洞名稱、發(fā)布時(shí)間、漏洞描述等。

3.2 爬蟲系統(tǒng)的架構(gòu)流程

網(wǎng)絡(luò)爬蟲根據(jù)預(yù)先設(shè)定的一個(gè)或若干初始種子 URL開始,以此獲得初始網(wǎng)頁(yè)上的URL列表 ,在爬行過(guò)程中不斷從 URL 隊(duì)列中獲一個(gè)的 URL,進(jìn)而訪問(wèn)并下載該頁(yè)面。頁(yè)面下載后頁(yè)面解析器去掉頁(yè)面上的 HTML 標(biāo)記后得到頁(yè)面內(nèi)容 , 將摘要、 URL 等信息保存到 Web數(shù)據(jù)庫(kù)中, 同時(shí)抽取當(dāng)前頁(yè)面上新的 URL,保存到 URL隊(duì)列, 直到滿足系統(tǒng)停止條件 。其工作流程如圖2所示。

3.3 爬蟲系統(tǒng)詳細(xì)設(shè)計(jì)

3.3.1 網(wǎng)頁(yè)結(jié)構(gòu)與數(shù)據(jù)分析

目標(biāo)站點(diǎn)目標(biāo)頁(yè)面上的信息基本是以表格形式呈現(xiàn),其中屬性信息包括漏洞名稱、CNVD編號(hào)、CVE編號(hào)、發(fā)布時(shí)間,危害級(jí)別、影響產(chǎn)品、漏洞描述、參考鏈接、解決方案、漏洞發(fā)現(xiàn)者等。根據(jù)實(shí)際項(xiàng)目需求,爬蟲抓取信息時(shí)不會(huì)全部保存列表上的屬性信息,只會(huì)保存項(xiàng)目所需數(shù)據(jù)信息。因此,將結(jié)構(gòu)化的數(shù)據(jù)信息定義成如下格式:

{

“_id”:

“vulName”:

“vulDescription”:

“vulAdvisory”:

“refWebsite”:

“deviceName”:

“firmwareVersion”:

“integImpact”:

}。

3.3.2 數(shù)據(jù)定義

通過(guò)對(duì)Scrapy框架的學(xué)習(xí)研究以及前面對(duì)結(jié)構(gòu)化數(shù)據(jù)的分析,利用Scrapy提供的Item類進(jìn)行數(shù)據(jù)字段定義。對(duì)應(yīng)item.py中主要的代碼如下:

import scrapy

class VulItem(scrapy.Item):

vulName = scrapy.Field()

vulDescription= scrapy.Filed()

3.3.3 編寫Spider

VulSpider是自定義編寫的用于爬取漏洞信息的爬蟲類,繼承自scrapy.CrawlSpider類。類主體中定義了幾種屬性和方法。

(1)Name屬性,定義的是蜘蛛名字的字符串,具有唯一性,在Scrapy啟動(dòng)爬蟲是使用。

(2)allowed_domains屬性,包含了Spider允許爬取的域名(Domain)列表(List)。

(3)Start_urls屬性,URL列表。當(dāng)沒有制定特定的URL時(shí),Spider將從該列表中開始進(jìn)行爬取。 因此,第一個(gè)被獲取到的頁(yè)面的URL將是該列表之一。 后續(xù)的URL將會(huì)從獲取到的數(shù)據(jù)中提取。

(4)Rules屬性,一個(gè)包含一個(gè)(或多個(gè))Rule對(duì)象的集合(List)。每個(gè)Rule對(duì)爬取網(wǎng)站的動(dòng)作定義了特定表現(xiàn)。Rule對(duì)象在下邊會(huì)介紹。如果多Rule匹配了相同的鏈接,則根據(jù)他們?cè)诒緦傩灾斜欢x的順序,第一個(gè)會(huì)被使用。

(5)Parse_item方法,當(dāng)Response指定的回調(diào)函數(shù)。

VulSpider主要的代碼如下:

class VulSpider(CrawlSpider):

name = 'vul'

allowed_domains = ['cnvd.org.cn']

start_urls = ['http://ics.cnvd.org.cn/?max=20&offset=0']

rules = [Rule(SgmlLinkExtractor(allow=r'\?max=20&offset=\d+?'), callback='parse_url', follow=True)]

def parse_url(self, response):

sel = Selector(text=response.body)

for i in range(1, 21):

url = sel.xpath('//div[@class="list"]/table/tbody[@id="tr"]/tr[i]/td[i]/a/@href').extract()

Yield Request(url, callback=parse_item)

def parse_item(self, response):

……

3.3.4 數(shù)據(jù)存儲(chǔ)

網(wǎng)絡(luò)爬蟲爬取的數(shù)據(jù)信息不僅量大,而且往往是結(jié)構(gòu)化或者非結(jié)構(gòu)化的數(shù)據(jù)。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)并不是很適合存儲(chǔ)和處理這種數(shù)據(jù)信息,而NoSQL在處理文檔類數(shù)據(jù)是有著非常良好的性能的。因而,爬蟲系統(tǒng)選擇分布式的非關(guān)系型數(shù)據(jù)庫(kù)MongoDB對(duì)爬取的數(shù)據(jù)進(jìn)行存儲(chǔ)。

首先,在爬蟲系統(tǒng)的setting.py文件中配置連接參數(shù),其中包括數(shù)據(jù)處理的項(xiàng)目管道、連接的服務(wù)器、端口、數(shù)據(jù)庫(kù)名、表名。然后,在 項(xiàng)目管道文件pipelines.py中定義數(shù)據(jù)庫(kù)連接函數(shù)。定義的主要代碼如下:

class VulPipeline(object):

def __init__(self):

connection = pymongo.MongoClient(settings['MONGO_SERVER'],settings['MONGO_PORT'])

db = connection[settings['MONGO_DB']]

self.collection = db[settings['MONGO_COLLECTION']]

def process_item(self, item, spider):

……

return item

以上代碼首先創(chuàng)建了一個(gè)VulPipeline類,其構(gòu)造函數(shù)初始化該類并建立一個(gè)與數(shù)據(jù)庫(kù)服務(wù)器的連接。process_item()函數(shù)解析后的數(shù)據(jù)項(xiàng)。

3.3.5 反爬措施

為了防止被網(wǎng)絡(luò)爬蟲爬取網(wǎng)頁(yè)上的數(shù)據(jù),很多網(wǎng)站都對(duì)網(wǎng)絡(luò)爬蟲進(jìn)行了限制。工業(yè)漏洞爬蟲利用Scrapy框架本身的優(yōu)勢(shì)并采取一定措施來(lái)避免被網(wǎng)站限制。采取的措施主要包括三種。

(1)設(shè)置延時(shí):download_delay表示下載器在下載同一個(gè)站點(diǎn)下一個(gè)網(wǎng)頁(yè)前需要等待的時(shí)間,這個(gè)時(shí)間如果太短,網(wǎng)絡(luò)爬蟲被Ban的概率則會(huì)大大增加。在settings.py中配置DOWNLOAD_DELAY = 3,3表示等待的秒數(shù)。

(2)禁止Cookies:可 以 防 止 使 用Cookies 識(shí)別爬蟲軌跡的網(wǎng)站察覺,在settings.py 設(shè)置:COOKIES_ENABLES=False 。

(3)使用User Agent池:為了防止被服務(wù)器識(shí)別,可將 User Agent 池定義在 rotate_useragent.py文件中,每次訪問(wèn)服務(wù)器時(shí),從User Agent列表中隨機(jī)選擇一個(gè)作為Request中頭部信息的User Agent。

4 結(jié)束語(yǔ)

隨著互聯(lián)網(wǎng)信息的爆炸式增長(zhǎng),網(wǎng)絡(luò)爬蟲技術(shù)日漸成熟,通過(guò)網(wǎng)絡(luò)爬蟲來(lái)獲取特定需求的信息數(shù)據(jù)必然會(huì)是信息需求的趨勢(shì)。本文在各種成熟的爬蟲框架中選擇Scrapy定制實(shí)現(xiàn)了一個(gè)工業(yè)漏洞網(wǎng)絡(luò)爬蟲,該爬蟲能高效的抓取所需的漏洞信息,實(shí)現(xiàn)了自動(dòng)化提取結(jié)構(gòu)化的網(wǎng)絡(luò)資源信息。

總之,利用網(wǎng)絡(luò)爬蟲來(lái)高效獲取信息已經(jīng)成為一個(gè)越來(lái)越受歡迎的手段。網(wǎng)絡(luò)爬蟲框架越來(lái)越多,便利越來(lái)越大,但是如何去提升爬蟲的效率仍將是爬蟲技術(shù)研究方向。

參考文獻(xiàn)

[1] 董日壯, 郭曙超.網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù), 2014(6X): 3986-3988.

[2] 周德懋,李舟軍.高性能網(wǎng)絡(luò)爬蟲: 研究綜述[J].計(jì)算機(jī)科學(xué), 2009,36(8): 26-29.

[3] 孫立偉,何國(guó)輝,吳禮發(fā).網(wǎng)絡(luò)爬蟲技術(shù)的研究[J].電腦知識(shí)與技術(shù),2010(15): 4112-4115.

[4] 李盛韜,余智華,程學(xué)旗,等.Web 信息采集研究進(jìn)展[J]. 計(jì)算機(jī)科學(xué),2003,30(2): 151-157.

[5] Chakrabarti S,Van den Berg M,Dom B. Focused crawling: a new approach to topic-specific Web resource discovery[J]. Computer Networks,1999,31(11): 1623-1640.

[6] Cho J, Garcia-Molina H. The evolution of the web and implications for an incremental crawler[J]. 1999.

[7] Scrapy Document.Available at http://www.scrapy.org/.

[8] Twisted Document.Available at http://twistedmatrix.com/trac/.

作者簡(jiǎn)介:

孫歆(1981-),男,漢族,浙江杭州人,畢業(yè)于浙江大學(xué),碩士研究生,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:信息安全、工控安全。

戴樺(1985-),男,漢族,浙江杭州人,畢業(yè)于南京郵電大學(xué),碩士研究生,工程師;主要研究方向和關(guān)注領(lǐng)域:工控安全、滲透測(cè)試。

孔曉昀(1969-),女,漢族,浙江杭州人,碩士研究生,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:信息技術(shù)、信息化建設(shè)。

趙明明(1984-),男,漢族,內(nèi)蒙古赤峰人,畢業(yè)于北京科技學(xué)院,本科,工程師;主要研究方向和關(guān)注領(lǐng)域:信息安全攻防。

猜你喜歡
爬蟲
Python環(huán)境下利用Selenium與JavaScript逆向技術(shù)爬蟲研究
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
Python反爬蟲設(shè)計(jì)
基于SCRAPY框架的網(wǎng)絡(luò)爬蟲封鎖技術(shù)破解研究
大數(shù)據(jù)爬蟲風(fēng)暴
面向社交網(wǎng)站的主題網(wǎng)絡(luò)爬蟲
基于Scrapy框架的分布式網(wǎng)絡(luò)爬蟲的研究與實(shí)現(xiàn)
誰(shuí)搶走了低價(jià)機(jī)票
網(wǎng)絡(luò)爬蟲,兇猛來(lái)襲
基于Python的網(wǎng)絡(luò)爬蟲程序設(shè)計(jì)
五华县| 惠来县| 河源市| 上饶市| 郯城县| 永昌县| 雷州市| 怀来县| 桃源县| 陕西省| 突泉县| 横峰县| 永平县| 崇文区| 馆陶县| 绥滨县| 衡阳市| 沁阳市| 伊川县| 杭州市| 抚远县| 满洲里市| 武城县| 逊克县| 尼勒克县| 霸州市| 陇南市| 平邑县| 湾仔区| 长武县| 沂源县| 大姚县| 嵊州市| 醴陵市| 玛多县| 兴安盟| 于都县| 鹰潭市| 汤原县| 玉田县| 青海省|