摘? 要:面向深層網(wǎng)數(shù)據(jù)的爬蟲技術(shù)與反爬蟲技術(shù)之間的對(duì)抗隨著網(wǎng)站技術(shù)、大數(shù)據(jù)、異步傳輸?shù)燃夹g(shù)的發(fā)展而呈現(xiàn)此消彼長(zhǎng)的趨勢(shì)。綜合對(duì)比當(dāng)前主流的爬蟲和反爬蟲技術(shù),針對(duì)高效開發(fā)、快速爬取的需求,MUCrawler(多源統(tǒng)一爬蟲框架)被設(shè)計(jì)成一種可以面向多個(gè)網(wǎng)站數(shù)據(jù)源,以統(tǒng)一的接口形式提供爬蟲開發(fā)的Python框架。測(cè)試結(jié)果顯示,該框架不但能夠突破不同的反爬蟲技術(shù)獲取網(wǎng)站數(shù)據(jù),在開發(fā)效率、魯棒性和爬取效率等方面也體現(xiàn)出較好的運(yùn)行效果。
關(guān)鍵詞:Python開發(fā);網(wǎng)絡(luò)爬蟲;瀏覽器行為;HTTP請(qǐng)求
中圖分類號(hào):TP311.1? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2096-1472(2021)-04-30-03
Abstract: Confrontation between crawler technology for deep web data and anti-crawler technology has waxed and waned with development of website technology, big data, and asynchronous transmission technology. This paper proposes to develop a Multi-source Uniform-interface Crawler (MUCrawler) framework after comprehensively comparing current mainstream crawler and anti-crawler technologies and considering the needs of efficient development and fast crawling. MUCrawler framework can face multiple websites data sources and provide Python framework of crawler development in the form of a uniform interface. Test results show that the proposed framework can not only break through different anti-crawler technologies to obtain website data, but also show better operating results in terms of development efficiency, robustness, and crawling efficiency.
Keywords: Python program; web crawler; browser behavior; HTTP (High Text Transfer Protocol) request
1? ?引言(Introduction)
網(wǎng)絡(luò)爬蟲(crawler,也稱spider、robot等)是面向互聯(lián)網(wǎng),能夠通過(guò)URL(Uniform Resource Locator,統(tǒng)一資源定位器)自動(dòng)獲取Web頁(yè)面數(shù)據(jù)的程序[1]。高性能的網(wǎng)絡(luò)爬蟲搜集互聯(lián)網(wǎng)信息是搜索引擎(如Google、Baidu等)的基礎(chǔ)。網(wǎng)絡(luò)爬蟲也是大數(shù)據(jù)和人工智能訓(xùn)練的一個(gè)重要數(shù)據(jù)來(lái)源,如社交網(wǎng)絡(luò)情緒分類[2]、農(nóng)業(yè)物資分析[3]或金融市場(chǎng)分析[4]等數(shù)據(jù)就可以采用網(wǎng)絡(luò)爬蟲從對(duì)應(yīng)網(wǎng)站中采集。
無(wú)限制的網(wǎng)絡(luò)爬蟲可能對(duì)網(wǎng)站造成流量壓力,因此,許多網(wǎng)站采用反爬蟲技術(shù)對(duì)網(wǎng)頁(yè)的自動(dòng)化爬取進(jìn)行限制,由此導(dǎo)致很多爬蟲程序失效[5]。反爬蟲技術(shù)的發(fā)展要求爬蟲程序必須不斷改進(jìn)才能突破反爬蟲限制獲取網(wǎng)頁(yè)內(nèi)容。本文針對(duì)當(dāng)前流行的爬蟲和反爬蟲技術(shù)進(jìn)行對(duì)比分析,在綜合各種爬蟲技術(shù)的基礎(chǔ)上提出了一種針對(duì)多數(shù)據(jù)源,提供統(tǒng)一接口的Python網(wǎng)絡(luò)爬蟲框架MUCrawler(Multi-source Uniform-interface Crawler,多源統(tǒng)一爬蟲框架),并針對(duì)招聘網(wǎng)站進(jìn)行測(cè)試。
2? 網(wǎng)絡(luò)爬蟲功能分析(Functional analysis of network crawler)
2.1? ?功能分類
依據(jù)數(shù)據(jù)存儲(chǔ)展現(xiàn)方式的不同,Web網(wǎng)站可以分成表層網(wǎng)和深層網(wǎng)[6],針對(duì)兩種網(wǎng)絡(luò)設(shè)計(jì)的爬蟲程序也稱為表層網(wǎng)爬蟲和深層網(wǎng)爬蟲。在當(dāng)前的網(wǎng)絡(luò)中,以靜態(tài)頁(yè)面為主要存儲(chǔ)展現(xiàn)的網(wǎng)站(表層網(wǎng))越來(lái)越少,更多的網(wǎng)站則是使用數(shù)據(jù)庫(kù)存取的動(dòng)態(tài)頁(yè)面、AJAX(Asynchronous JavaScript and XML,異步的JavaScript和XML)數(shù)據(jù)加載、JSON(JavaScript Object Notation, JavaScript對(duì)象簡(jiǎn)譜)數(shù)據(jù)傳輸?shù)纳顚泳W(wǎng),因此,深層網(wǎng)爬蟲應(yīng)用最廣泛。
依據(jù)爬取Web數(shù)據(jù)的范圍,網(wǎng)絡(luò)爬蟲可以分為通用型爬蟲和主題型爬蟲兩類。通用型爬蟲是對(duì)互聯(lián)網(wǎng)所有Web信息進(jìn)行遍歷獲取,這種爬蟲主要作為搜索引擎的信息采集工具,具有全面性、高效率、高并發(fā)、海量存儲(chǔ)等特點(diǎn)[7]。與通用型爬蟲不同,主題型爬蟲則是針對(duì)某一個(gè)或幾個(gè)網(wǎng)站,進(jìn)行特定主題信息的獲取[8]。主題型網(wǎng)絡(luò)爬蟲在當(dāng)前大數(shù)據(jù)分析領(lǐng)域應(yīng)用較為廣泛。
2.2? ?基本功能
網(wǎng)絡(luò)爬蟲必須能夠模擬瀏覽器行為,針對(duì)URL自動(dòng)完成HTTP請(qǐng)求,并能夠接收服務(wù)器傳回的HTTP響應(yīng)信息。Web服務(wù)器響應(yīng)的信息一般為HTML(Hyper Text Markup Language,超文本標(biāo)記語(yǔ)言)、XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)或者JSON等格式的數(shù)據(jù),也可能是圖像或者視頻格式文件。因此,網(wǎng)絡(luò)爬蟲需要將服務(wù)器相應(yīng)的信息按照語(yǔ)法結(jié)構(gòu)進(jìn)行解析,從中過(guò)濾出有用的信息。
網(wǎng)絡(luò)爬蟲還要具有迭代查找或者構(gòu)造URL的功能。當(dāng)前多數(shù)網(wǎng)站是信息存放在數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站,網(wǎng)絡(luò)爬蟲需要通過(guò)自動(dòng)表單填寫和提交,使用POST方法來(lái)獲取新的URL以及分析網(wǎng)站URL結(jié)構(gòu),也可以通過(guò)字符串拼接方式構(gòu)造GET方法的URL。如果網(wǎng)站響應(yīng)信息為HTML響應(yīng)信息,也可以從頁(yè)面信息中過(guò)濾“href”“src”等標(biāo)簽或?qū)傩垣@取更深層次的URL。
能夠?qū)崿F(xiàn)網(wǎng)絡(luò)爬蟲基本功能的Python擴(kuò)展庫(kù)包括:Urllib、Requests實(shí)現(xiàn)HTTP請(qǐng)求和響應(yīng)處理,Beautifulsoup、PyQuery、lxml等實(shí)現(xiàn)響應(yīng)文檔解析。
2.3? ?擴(kuò)展功能
網(wǎng)絡(luò)數(shù)據(jù)的大規(guī)模爬取、存儲(chǔ)和處理,要求網(wǎng)絡(luò)爬蟲除了具備上述基本功能,還需要具備并行調(diào)度、數(shù)據(jù)去重和數(shù)據(jù)存儲(chǔ)等功能[9]。短時(shí)間內(nèi)獲取海量網(wǎng)絡(luò)數(shù)據(jù)需要提高采集效率,在Robots協(xié)議允許范圍內(nèi),采取多線程并發(fā)的方式是主要途徑[10]。網(wǎng)絡(luò)信息中存在大量重復(fù)的URL或冗余數(shù)據(jù),獲取這些數(shù)據(jù)不但會(huì)浪費(fèi)寶貴的計(jì)算資源、帶寬資源和存儲(chǔ)資源,還會(huì)給服務(wù)器造成不必要的壓力,因此,去除這些重復(fù)URL和冗余數(shù)據(jù)對(duì)于提高網(wǎng)絡(luò)爬蟲效率至關(guān)重要。侯美靜等基于DOM(Document Object Model,文檔對(duì)象模型)結(jié)構(gòu)計(jì)算頁(yè)面相似度,實(shí)現(xiàn)智能URL去重提高爬取效率[11]。存儲(chǔ)爬取數(shù)據(jù)的方式有多種,如數(shù)據(jù)庫(kù)存儲(chǔ)等結(jié)構(gòu)化存儲(chǔ)、JSON等半結(jié)構(gòu)化存儲(chǔ)及文本圖像視頻等非結(jié)構(gòu)化存儲(chǔ),因此網(wǎng)絡(luò)爬蟲還應(yīng)具備多種存儲(chǔ)方式的接口。
2.4? ?反爬蟲技術(shù)及對(duì)應(yīng)策略
數(shù)據(jù)已經(jīng)成為互聯(lián)網(wǎng)寶貴的資源,多數(shù)大型網(wǎng)站對(duì)自己的數(shù)據(jù)都有防范措施,即采用反爬蟲技術(shù)對(duì)網(wǎng)站爬取進(jìn)行限制。常用的反爬蟲機(jī)制和應(yīng)對(duì)策略如表1所示[12-13]。
2.5? ?爬蟲框架
隨著搜索引擎,尤其是大數(shù)據(jù)技術(shù)的發(fā)展,網(wǎng)絡(luò)爬蟲技術(shù)的應(yīng)用越來(lái)越廣泛。采用Python基本功能庫(kù)(如Requests)編碼實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲,可以靈活定制爬蟲功能,但開發(fā)效率較低。因此,許多組織或個(gè)人開發(fā)了網(wǎng)絡(luò)爬蟲框架作為中間件來(lái)提高開發(fā)效率[14-15],如Scrapy、Pyspider、Crawley等,其中應(yīng)用最廣泛的就是Scrapy,文獻(xiàn)[16]就是基于Scrapy設(shè)計(jì)開發(fā)就業(yè)推薦系統(tǒng)。
Scrapy是一個(gè)高層次的、快速開源的網(wǎng)絡(luò)爬蟲框架,用于爬取網(wǎng)站并從頁(yè)面中提取數(shù)據(jù)。Scrapy以Scrapy engine為中心,實(shí)現(xiàn)發(fā)起HTTP請(qǐng)求、接收響應(yīng)、迭代提取URL等網(wǎng)絡(luò)爬蟲功能,并通過(guò)URL列表、數(shù)據(jù)列表輸出的統(tǒng)一調(diào)度來(lái)控制并發(fā),提高系統(tǒng)效率。但是,Scrapy針對(duì)使用AJAX等動(dòng)態(tài)加載數(shù)據(jù)的反爬取技術(shù)的應(yīng)對(duì)策略不足,無(wú)法突破高級(jí)反爬蟲技術(shù)的屏蔽。
3? 多源統(tǒng)一爬蟲框架(Multi-source uniform-interface spider structure)
綜上分析,各種網(wǎng)絡(luò)爬蟲技術(shù)均有自己的優(yōu)勢(shì)和不足,尤其是針對(duì)不同的反爬蟲技術(shù),有些爬蟲技術(shù)受到限制而另外一些卻能突破。大型網(wǎng)站的結(jié)構(gòu)和內(nèi)容在不斷地變化,針對(duì)網(wǎng)絡(luò)爬蟲所采取的反爬蟲措施也在不斷強(qiáng)化。例如,2019年針對(duì)知名招聘網(wǎng)站A開發(fā)的網(wǎng)絡(luò)爬蟲技術(shù),在2020年已經(jīng)失效。因此,本文結(jié)合各種爬蟲與反爬蟲技術(shù)開發(fā)一種面向多數(shù)據(jù)源的統(tǒng)一爬蟲框架。
3.1? ?設(shè)計(jì)原則
周德懋等提出高性能網(wǎng)絡(luò)爬蟲應(yīng)該具有可伸縮性、提高下載質(zhì)量、避免下載垃圾問(wèn)題的特點(diǎn)[9],于成龍等還補(bǔ)充了禮貌爬行、并行性等特點(diǎn)[17]。這些特點(diǎn)都是本框架設(shè)計(jì)的原則,突出的主要有四點(diǎn):
(1)多源通用:針對(duì)采用了各種不同反爬蟲技術(shù)的網(wǎng)站,框架均具有適應(yīng)性,且需要屏蔽采取爬蟲技術(shù)底層細(xì)節(jié),為用戶提供統(tǒng)一的URL請(qǐng)求接口。
(2)提高性能:以客戶端計(jì)算資源和帶寬資源為基礎(chǔ),在框架中采用多線程網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)并發(fā)數(shù)據(jù)采集。不同的網(wǎng)絡(luò)爬蟲技術(shù)采取不同的并發(fā)度,如Requests針對(duì)大型網(wǎng)站多主題數(shù)據(jù)爬取采用大量線程(線程數(shù)>10);針對(duì)中小型網(wǎng)站的多主題數(shù)據(jù)爬取采取少量線程并發(fā)(線程數(shù)≤10);針對(duì)Selenium等模擬瀏覽器運(yùn)行AJAX數(shù)據(jù)加載的網(wǎng)絡(luò)爬蟲則采取單線程,避免出現(xiàn)錯(cuò)誤。
(3)適度采集:網(wǎng)絡(luò)爬蟲爬取信息會(huì)擠占網(wǎng)站的計(jì)算資源和帶寬資源,對(duì)同一網(wǎng)站無(wú)限制的并發(fā)大量請(qǐng)求連接會(huì)消耗其資源,影響正常用戶的訪問(wèn)。因此,本框架采取“禮貌”爬取方式,限制單位時(shí)間內(nèi)并發(fā)的請(qǐng)求連接數(shù)量以及兩次請(qǐng)求之間的時(shí)間間隔。
(4)統(tǒng)一存儲(chǔ):用戶對(duì)爬取的數(shù)據(jù)可能采取MySQL等數(shù)據(jù)庫(kù)存儲(chǔ),也可能采取csv文件甚至文本文件存儲(chǔ)。因此,本框架封裝多種存儲(chǔ)方式接口,調(diào)用方式統(tǒng)一,參數(shù)各異。
3.2? ?框架結(jié)構(gòu)
本框架包括下載、分析、存儲(chǔ)和調(diào)度四個(gè)模塊,其結(jié)構(gòu)如圖1所示。
3.3? ?框架模塊說(shuō)明
(1)下載模塊:下載模塊是MUCrawler框架體現(xiàn)“多源統(tǒng)一”特點(diǎn)的模塊?!岸嘣础奔炊鄠€(gè)數(shù)據(jù)源(Web網(wǎng)站),這些Web網(wǎng)站可能采取不同的反爬蟲策略;“統(tǒng)一”即針對(duì)不同數(shù)據(jù)源,MUCrawler封裝了不同的爬取技術(shù),如Requests、Selenium等,只需要設(shè)置網(wǎng)站域名(host)、對(duì)應(yīng)的方法名和headers參數(shù)即可。
(2)分析模塊:除了有用數(shù)據(jù),頁(yè)面包括大量的HTML標(biāo)簽、CSS樣式、JavaScript代碼等。分析模塊的功能是從已經(jīng)下載的頁(yè)面中過(guò)濾出有用信息,主要采用Beautifulsoup、Selenium等技術(shù),將特定標(biāo)簽或?qū)傩灾械男畔⑻崛〕鰜?lái)。在MUCrawler中,用戶只需要設(shè)定標(biāo)簽或者屬性與信息的對(duì)應(yīng)關(guān)系,同時(shí)設(shè)置該條數(shù)據(jù)的名稱,即可通過(guò)鍵值對(duì)的方式存入數(shù)組。
(3)調(diào)度模塊:形成URL隊(duì)列,通過(guò)對(duì)URL的入隊(duì)和出隊(duì)操作實(shí)現(xiàn)對(duì)URL請(qǐng)求進(jìn)度的控制。當(dāng)配置高并發(fā)的時(shí)候,會(huì)同時(shí)出隊(duì)多個(gè)URL發(fā)送到下載模塊來(lái)請(qǐng)求頁(yè)面;當(dāng)配置低并發(fā)或單線程時(shí),每次只彈出少數(shù)幾個(gè)甚至一個(gè)URL發(fā)送到下載模塊來(lái)請(qǐng)求頁(yè)面。通過(guò)設(shè)置兩個(gè)URL請(qǐng)求間隔時(shí)間控制訪問(wèn)速度。
(4)存儲(chǔ)模塊:Web數(shù)據(jù)存儲(chǔ)可以有多種形式,如文本文件存儲(chǔ)、csv或excel文件存儲(chǔ)、數(shù)據(jù)庫(kù)存儲(chǔ)等。針對(duì)這些形式,MUCrawler框架封裝了文本文件存儲(chǔ)接口,接口參數(shù)包括命名規(guī)則、文件大小限制等;csv或excel文件存儲(chǔ),接口參數(shù)包括命名規(guī)則、sheet設(shè)定、列名、文件大小限制等;數(shù)據(jù)庫(kù)存儲(chǔ)接口包括MySQL、NoSQL等多種,接口參數(shù)包括數(shù)據(jù)庫(kù)連接參數(shù)、字段對(duì)應(yīng)關(guān)系、重復(fù)數(shù)據(jù)判定字段等,封裝了select、insert、delete等操作方法。
4? MUCrawler框架應(yīng)用測(cè)試(MUCrawler application and test)
招聘類網(wǎng)站是典型的數(shù)據(jù)密集、更新快速的深層網(wǎng)網(wǎng)站。為了測(cè)試應(yīng)用效果,MUCrawler框架針對(duì)招聘類網(wǎng)站進(jìn)行了采集實(shí)踐[15]。
4.1? ?測(cè)試環(huán)境
MUCrawler基于Python環(huán)境,軟硬件配置如下:
服務(wù)器:DELL PowerEdge R210 II;CPU:Intel(R) Xeon(R)E3-1220,3.1 GHz;內(nèi)存:8 GB;硬盤:1 TB;操作系統(tǒng):Windows Server 2008 R2。
VMware虛擬機(jī):CPU:1顆2核;內(nèi)存:2 GB;硬盤:20 GB。
操作系統(tǒng):Windows 7 professional 64 bit。
軟件環(huán)境:Python 3.7.7 64 bit。
網(wǎng)絡(luò)環(huán)境:100 MB以太網(wǎng)物理網(wǎng)絡(luò),NAT虛擬網(wǎng)絡(luò)設(shè)置。
4.2? ?測(cè)試方案
MUCrawler框架的測(cè)試目標(biāo)主要是功能測(cè)試、開發(fā)效率測(cè)試、魯棒性測(cè)試和爬取效率測(cè)試等。為了對(duì)比框架運(yùn)行效果,選擇其他主流方法、庫(kù)或框架進(jìn)行對(duì)比。選擇了三家知名的招聘網(wǎng)站作為測(cè)試對(duì)象,分別以L、W、Z表示。按照不同的關(guān)鍵字進(jìn)行搜索,每個(gè)網(wǎng)站得到100個(gè)URL鏈接,將這300個(gè)鏈接作為測(cè)試URL庫(kù)。框架測(cè)試對(duì)比項(xiàng)目如表2所示。
4.3? ?測(cè)試結(jié)果
按照測(cè)試方案,功能測(cè)試針對(duì)L、W和Z網(wǎng)站的URL分別進(jìn)行爬取,爬取功能實(shí)現(xiàn)結(jié)果如表3所示,“Y”代表成功爬取,“N”代表爬取失敗。
分別采用Requests、Selenium、Scrapy和MUCrawler四種技術(shù)對(duì)三個(gè)目標(biāo)網(wǎng)站的URL鏈接庫(kù)進(jìn)行開發(fā)效率測(cè)試、魯棒性測(cè)試和爬取效率測(cè)試。為了便于對(duì)比,本文將測(cè)試結(jié)果進(jìn)行歸一化,如公式(1)所示,其中為第個(gè)網(wǎng)站的測(cè)試值。
四種技術(shù)的開發(fā)效率、魯棒性和爬取效率的測(cè)試結(jié)果經(jīng)過(guò)歸一化處理,均轉(zhuǎn)換為0—1的小數(shù),數(shù)值越小性能越優(yōu),結(jié)果如圖2所示。
4.4? ?結(jié)果分析
圖2所展示的測(cè)試結(jié)果表明,在性能上Scrapy的開發(fā)效率、魯棒性和爬取效率均為最優(yōu),其次是Requests,MUCrawler第三,而Selenium則在這些方面均處于劣勢(shì)。但結(jié)合表1的功能測(cè)試,針對(duì)部分網(wǎng)站的反爬措施,只有Selenium、MUCrawler能夠?qū)崿F(xiàn)三個(gè)網(wǎng)站的Web信息爬取,且MUCrawler針對(duì)三個(gè)測(cè)試網(wǎng)站的爬取效率高于Selenium。
5? ?結(jié)論(Conclusion)
MUCrawler網(wǎng)絡(luò)爬蟲框架綜合各種Python爬蟲技術(shù)的優(yōu)勢(shì),能夠突破常用爬蟲技術(shù)的限制實(shí)現(xiàn)信息的爬取。然而,MUCrawler并非Python原生開發(fā)的類庫(kù),只是基于Requests、Selenium等技術(shù)進(jìn)行的二次開發(fā),因此在爬取性能上還不能做到最優(yōu)。
參考文獻(xiàn)(References)
[1] BRIN S, PAGE L. The anatomy of a large-scale hypertextual web search engine[J]. Computer Networks, 1998, 30(1):107-117.
[2] 彭紀(jì)奔,吳林,陳賢,等.基于爬蟲技術(shù)的網(wǎng)絡(luò)負(fù)面情緒挖掘系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(10):9-13;71.
[3] TIAN F, TAN H, CHENG Z, et al. Research and construction of the online pesticide information center and discovery platform based on web crawler[J]. Procedia Computer Science, 2020, 166:9-14.
[4] LIU P, XIA X, LI A. Tweeting the financial market: Media effect in the era of big data[J]. Pacific-Basin Finance Journal, 2018, 51(7):267-290.
[5] 張曄,孫光光,徐洪云,等.國(guó)外科技網(wǎng)站反爬蟲研究及數(shù)據(jù)獲取對(duì)策研究[J].競(jìng)爭(zhēng)情報(bào),2020,16(01):24-28.
[6] 曾偉輝,李淼.深層網(wǎng)絡(luò)爬蟲研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(05):122-126.
[7] ARASU A, CHO J. Searching the web[J]. ACM Transactions on Internet Technology, 2001, 1(1):2-43.
[8] 林椹尠,袁柱,李小平.一種主題自適應(yīng)聚焦爬蟲方法[J].計(jì)算機(jī)應(yīng)用與軟件,2019,36(5):316-321.
[9] 周德懋,李舟軍.高性能網(wǎng)絡(luò)爬蟲:研究綜述[J].計(jì)算機(jī)科學(xué),2009,36(08):26-29;53.
[10] BEDI P, THUKRAL A, BANATI H, et al. A multi-threaded semantic focused crawler[J]. Journal of Computer Science and Technology, 2012, 27(6):1233-1242.
[11] 侯美靜,崔艷鵬,胡建偉.基于爬蟲的智能爬行算法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(11):215-219;277.
[12] 胡立.Python反爬蟲設(shè)計(jì)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2020,46(11):48-49.
[13] 余本國(guó).基于Python網(wǎng)絡(luò)爬蟲的瀏覽器偽裝技術(shù)探討[J].太原學(xué)院學(xué)報(bào)(自然科學(xué)版),2020,38(1):47-50.
[14] LI J T, MA X. Research on hot news discovery model based on user interest and topic discovery[J]. Cluster Comput, 2019, 22(7):8483-8491.
[15] PENG T, HE F, ZUO W L. A new framework for focused web crawling[J]. Wuhan University Journal of Natural Sciences, 2006, 11(9):1394-1397.
[16] 陳榮征,陳景濤,林澤銘.基于網(wǎng)絡(luò)爬蟲和智能推薦的大學(xué)生精準(zhǔn)就業(yè)服務(wù)系統(tǒng)研究[J].電腦與電信,2019(Z1):39-43.
[17] 于成龍,于洪波.網(wǎng)絡(luò)爬蟲技術(shù)研究[J].東莞理工學(xué)院學(xué)報(bào),2011,18(03):25-29.
作者簡(jiǎn)介:
潘洪濤(1979-),男,碩士,副教授.研究領(lǐng)域:網(wǎng)絡(luò)安全,軟件開發(fā)和計(jì)算機(jī)職業(yè)教育.