版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章認(rèn)識(shí)網(wǎng)絡(luò)爬蟲(chóng)《Python網(wǎng)絡(luò)爬蟲(chóng)基礎(chǔ)教程》學(xué)習(xí)目標(biāo)/Target熟悉網(wǎng)絡(luò)爬蟲(chóng)的概念及分類(lèi),能夠歸納通用網(wǎng)絡(luò)爬蟲(chóng)和聚焦網(wǎng)絡(luò)爬蟲(chóng)的區(qū)別了解網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景,能夠列舉至少3個(gè)網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景熟悉網(wǎng)絡(luò)爬蟲(chóng)的Robots協(xié)議,能夠說(shuō)明robots.txt文件中每個(gè)選項(xiàng)的含義熟悉防網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)對(duì)策略,能夠列舉至少3個(gè)應(yīng)對(duì)防網(wǎng)絡(luò)爬蟲(chóng)的策略學(xué)習(xí)目標(biāo)/Target掌握網(wǎng)絡(luò)爬蟲(chóng)的工作原理,能夠定義通用網(wǎng)絡(luò)爬蟲(chóng)和聚焦網(wǎng)絡(luò)爬蟲(chóng)的工作原理熟悉網(wǎng)絡(luò)爬蟲(chóng)的工作流程,能夠歸納網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)頁(yè)的完整流程了解網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù),能夠說(shuō)出使用Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)有哪些優(yōu)勢(shì)熟悉網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)流程,能夠歸納使用Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)的流程章節(jié)概述/Summary隨著網(wǎng)絡(luò)的蓬勃發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效提取并利用這些信息成為一個(gè)巨大的挑戰(zhàn)。網(wǎng)絡(luò)爬蟲(chóng)作為一種自動(dòng)采集數(shù)據(jù)技術(shù),憑借自身強(qiáng)大的自動(dòng)提取網(wǎng)頁(yè)數(shù)據(jù)的能力,成為當(dāng)下互聯(lián)網(wǎng)高效、靈活地收集數(shù)據(jù)的解決方案之一。本章主要對(duì)網(wǎng)絡(luò)爬蟲(chóng)的基礎(chǔ)知識(shí)進(jìn)行詳細(xì)地講解。目錄/Contents1.11.21.3什么是網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景網(wǎng)絡(luò)爬蟲(chóng)合法性探究1.41.5網(wǎng)絡(luò)爬蟲(chóng)的工作原理和流程網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)技術(shù)探究什么是網(wǎng)絡(luò)爬蟲(chóng)1.1熟悉網(wǎng)絡(luò)爬蟲(chóng)的概念及分類(lèi),能夠歸納通用網(wǎng)絡(luò)爬蟲(chóng)和聚焦網(wǎng)絡(luò)爬蟲(chóng)的區(qū)別學(xué)習(xí)目標(biāo)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)(WebCrawler)又稱(chēng)網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機(jī)器人,它是一種按照一定規(guī)則,自動(dòng)瀏覽萬(wàn)維網(wǎng)的程序或腳本。通俗地講,網(wǎng)絡(luò)爬蟲(chóng)就是一個(gè)模擬真人瀏覽萬(wàn)維網(wǎng)行為的程序,這個(gè)程序可以代替真人自動(dòng)請(qǐng)求萬(wàn)維網(wǎng),并接收從萬(wàn)維網(wǎng)返回的數(shù)據(jù)。與真人瀏覽萬(wàn)維網(wǎng)相比,網(wǎng)絡(luò)爬蟲(chóng)能夠?yàn)g覽的信息量更大,效率也更高。
網(wǎng)絡(luò)爬蟲(chóng)概念1.1什么是網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)歷經(jīng)幾十年的發(fā)展,技術(shù)變得更加多樣化,并結(jié)合不同的需求衍生出類(lèi)型眾多的網(wǎng)絡(luò)爬蟲(chóng)。網(wǎng)絡(luò)爬蟲(chóng)按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù)大致可以分為4種類(lèi)型,分別是通用網(wǎng)絡(luò)爬蟲(chóng)、聚焦網(wǎng)絡(luò)爬蟲(chóng)、增量式網(wǎng)絡(luò)爬蟲(chóng)、深層網(wǎng)絡(luò)爬蟲(chóng)。
網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)聚焦網(wǎng)絡(luò)爬蟲(chóng)通用網(wǎng)絡(luò)爬蟲(chóng)增量式網(wǎng)絡(luò)爬蟲(chóng)深層網(wǎng)絡(luò)爬蟲(chóng)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)通用網(wǎng)絡(luò)爬蟲(chóng)(GeneralPurposeWebCrawler)又稱(chēng)全網(wǎng)爬蟲(chóng)(ScalableWebCrawler),是指訪問(wèn)全互聯(lián)網(wǎng)資源的網(wǎng)絡(luò)爬蟲(chóng)。通用網(wǎng)絡(luò)爬蟲(chóng)是“互聯(lián)網(wǎng)時(shí)代”早期出現(xiàn)的傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng),它是搜索引擎(如百度、谷歌、雅虎等)抓取系統(tǒng)的重要組成部分,主要用于將互聯(lián)網(wǎng)中的網(wǎng)頁(yè)下載到本地,形成一個(gè)互聯(lián)網(wǎng)內(nèi)容的鏡像備份。通用網(wǎng)絡(luò)爬蟲(chóng)
網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)聚焦網(wǎng)絡(luò)爬蟲(chóng)(FocusedCrawler)又稱(chēng)主題網(wǎng)絡(luò)爬蟲(chóng)(TopicalCrawler),是指有選擇性地訪問(wèn)那些與預(yù)定主題相關(guān)網(wǎng)頁(yè)的網(wǎng)絡(luò)爬蟲(chóng),它根據(jù)預(yù)先定義好的目標(biāo),有選擇性地訪問(wèn)與目標(biāo)主題相關(guān)的網(wǎng)頁(yè),獲取所需要的數(shù)據(jù)。與通用網(wǎng)絡(luò)爬蟲(chóng)相比,聚焦網(wǎng)絡(luò)爬蟲(chóng)只需要訪問(wèn)與預(yù)定主題相關(guān)的網(wǎng)頁(yè),這不僅減少了訪問(wèn)和保存的頁(yè)面數(shù)量,而且提高了網(wǎng)頁(yè)的更新速度,可見(jiàn),聚焦網(wǎng)絡(luò)爬蟲(chóng)在一定程度度節(jié)省了網(wǎng)絡(luò)資源,能滿足一些特定人群采集特定領(lǐng)域數(shù)據(jù)的需求。
網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)聚焦網(wǎng)絡(luò)爬蟲(chóng)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)增量式網(wǎng)絡(luò)爬蟲(chóng)(IncrementalWebCrawler)是指對(duì)已下載的網(wǎng)頁(yè)采取增量式更新,只抓取新產(chǎn)生或者已經(jīng)發(fā)生變化的網(wǎng)頁(yè)的網(wǎng)絡(luò)爬蟲(chóng)。增量式網(wǎng)絡(luò)爬蟲(chóng)只會(huì)抓取新產(chǎn)生的或內(nèi)容變化的網(wǎng)頁(yè),并不會(huì)重新抓取內(nèi)容未發(fā)生變化的網(wǎng)頁(yè),這樣可以有效地減少網(wǎng)頁(yè)的下載量,減少訪問(wèn)時(shí)間和存儲(chǔ)空間的耗費(fèi),但是增加了網(wǎng)頁(yè)抓取算法的復(fù)雜度和實(shí)現(xiàn)難度。
網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)增量式網(wǎng)絡(luò)爬蟲(chóng)1.1什么是網(wǎng)絡(luò)爬蟲(chóng)深層網(wǎng)絡(luò)爬蟲(chóng)(DeepWebCrawler)是指抓取深層網(wǎng)頁(yè)的網(wǎng)絡(luò)爬蟲(chóng),它要抓取的網(wǎng)頁(yè)層次比較深,需要通過(guò)一定的附加策略才能夠自動(dòng)抓取,實(shí)現(xiàn)難度較大。
網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)深層網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)頁(yè)按存在方式可以分為表層網(wǎng)頁(yè)(SurfaceWeb)和深層網(wǎng)頁(yè)(DeepWeb),關(guān)于這兩類(lèi)網(wǎng)頁(yè)的介紹如下。多學(xué)一招表層網(wǎng)頁(yè)是指?jìng)鹘y(tǒng)搜索引擎可以索引的頁(yè)面,主要以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁(yè)構(gòu)成的網(wǎng)頁(yè)。深層網(wǎng)頁(yè)是指大部分內(nèi)容無(wú)法通過(guò)靜態(tài)鏈接獲取的,只能通過(guò)用戶提交一些關(guān)鍵詞才能獲取的網(wǎng)頁(yè),如用戶注冊(cè)后內(nèi)容才可見(jiàn)的網(wǎng)頁(yè)。表層網(wǎng)頁(yè)與深層網(wǎng)頁(yè)網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景1.2了解網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景,能夠列舉至少3個(gè)網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景學(xué)習(xí)目標(biāo)1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景隨著互聯(lián)網(wǎng)信息的“爆炸”,網(wǎng)絡(luò)爬蟲(chóng)漸漸為人們所熟知,并被應(yīng)用到了社會(huì)生活的眾多領(lǐng)域。作為一種自動(dòng)采集網(wǎng)頁(yè)數(shù)據(jù)的技術(shù),很多人其實(shí)并不清楚網(wǎng)絡(luò)爬蟲(chóng)具體能應(yīng)用到什么場(chǎng)景。事實(shí)上,大多數(shù)依賴(lài)數(shù)據(jù)支撐的應(yīng)用場(chǎng)景都離不開(kāi)網(wǎng)絡(luò)爬蟲(chóng),包括搜索引擎、輿情分析與監(jiān)測(cè)、聚合平臺(tái)、出行類(lèi)軟件等。1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景輿情分析與監(jiān)測(cè)搜索引擎聚合平臺(tái)出行類(lèi)軟件
網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景搜索引擎是通用網(wǎng)絡(luò)爬蟲(chóng)最重要的應(yīng)用場(chǎng)景之一,它會(huì)將網(wǎng)絡(luò)爬蟲(chóng)作為最基礎(chǔ)的部分——互聯(lián)網(wǎng)信息的采集器,讓網(wǎng)絡(luò)爬蟲(chóng)自動(dòng)到互聯(lián)網(wǎng)中抓取數(shù)據(jù)。例如,谷歌、百度、必應(yīng)等搜索引擎都是利用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)從互聯(lián)網(wǎng)上采集海量的數(shù)據(jù)。1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景搜索引擎
網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景政府或企業(yè)通過(guò)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)自動(dòng)采集論壇評(píng)論、在線博客、新聞媒體或微博等網(wǎng)站中的海量數(shù)據(jù),采用數(shù)據(jù)挖掘的相關(guān)方法(如詞頻統(tǒng)計(jì)、文本情感計(jì)算、主題識(shí)別等)發(fā)掘輿情熱點(diǎn),跟蹤目標(biāo)話題,并根據(jù)一定的標(biāo)準(zhǔn)采取相應(yīng)的輿情控制與引導(dǎo)措施。例如,百度熱點(diǎn)排行榜、微博熱搜排行榜。1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景
網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景輿情分析與檢測(cè)如今出現(xiàn)的很多聚合平臺(tái),如返利網(wǎng)、慢慢買(mǎi)等,也是網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的常見(jiàn)的應(yīng)用場(chǎng)景,這些平臺(tái)就是運(yùn)用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)對(duì)一些電商平臺(tái)上的商品信息進(jìn)行采集,將所有的商品信息放到自己的平臺(tái)上展示,并提供橫向數(shù)據(jù)的比較,幫助用戶尋找實(shí)惠的商品價(jià)格。例如,用戶在慢慢買(mǎi)平臺(tái)搜索華為智能手表后,平臺(tái)上展示了很多款華為智能手表的價(jià)格分析及價(jià)格走勢(shì)等信息。1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景
網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景聚合平臺(tái)出行類(lèi)軟件,比如飛豬、攜程、去哪兒等,也是網(wǎng)絡(luò)爬蟲(chóng)應(yīng)用比較多的場(chǎng)景。這類(lèi)應(yīng)用運(yùn)用網(wǎng)絡(luò)爬蟲(chóng)技術(shù),不斷地訪問(wèn)交通出行的官方售票網(wǎng)站刷新余票,一旦發(fā)現(xiàn)有新的余票便會(huì)通知用戶付款買(mǎi)票。不過(guò),官方售票網(wǎng)站并不歡迎網(wǎng)絡(luò)爬蟲(chóng)的這種行為,因?yàn)楦哳l率地訪問(wèn)網(wǎng)頁(yè)極易造成網(wǎng)站出現(xiàn)癱瘓的情況。1.2網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景
網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景出行類(lèi)軟件網(wǎng)絡(luò)爬蟲(chóng)合法性探究1.3網(wǎng)絡(luò)爬蟲(chóng)在訪問(wèn)網(wǎng)站時(shí),需要遵循“有禮貌”的原則,這樣才能與更多的網(wǎng)站建立友好關(guān)系。即便如此,網(wǎng)絡(luò)爬蟲(chóng)的爬行行為仍會(huì)給網(wǎng)站增加不小的壓力,嚴(yán)重時(shí)甚至可能會(huì)影響網(wǎng)站的正常訪問(wèn)。為了約束網(wǎng)絡(luò)爬蟲(chóng)的惡意行為,網(wǎng)站內(nèi)部加入了一些防爬蟲(chóng)措施來(lái)阻止網(wǎng)絡(luò)爬蟲(chóng)。與此同時(shí),網(wǎng)絡(luò)爬蟲(chóng)也研究了防爬蟲(chóng)措施的應(yīng)對(duì)策略。1.3網(wǎng)絡(luò)爬蟲(chóng)合法性探究熟悉網(wǎng)絡(luò)爬蟲(chóng)的Robots協(xié)議,能夠說(shuō)明robots.txt文件中每個(gè)選項(xiàng)的含義學(xué)習(xí)目標(biāo)1.3.1Robots協(xié)議Robots協(xié)議又稱(chēng)爬蟲(chóng)協(xié)議,它是國(guó)際互聯(lián)網(wǎng)界通行的道德規(guī)范,用于保護(hù)網(wǎng)站數(shù)據(jù)和敏感信息,確保網(wǎng)站用戶的個(gè)人信息和隱私不受侵犯。為了讓網(wǎng)絡(luò)爬蟲(chóng)了解網(wǎng)站的訪問(wèn)范圍,網(wǎng)站管理員通常會(huì)在網(wǎng)站的根目錄下放置一個(gè)符合Robots協(xié)議的robots.txt文件,通過(guò)這個(gè)文件告知網(wǎng)絡(luò)爬蟲(chóng)在抓取該網(wǎng)站時(shí)存在哪些限制,哪些網(wǎng)頁(yè)是允許被抓取的,哪些網(wǎng)頁(yè)是禁止被抓取的。
Robots協(xié)議1.3.1Robots協(xié)議當(dāng)網(wǎng)絡(luò)爬蟲(chóng)訪問(wèn)網(wǎng)站時(shí),應(yīng)先檢查該網(wǎng)站的根目錄下是否存在robots.txt文件。若robots.txt文件不存在,則網(wǎng)絡(luò)爬蟲(chóng)會(huì)訪問(wèn)該網(wǎng)站上所有被口令保護(hù)的頁(yè)面;若robots.txt文件存在,則網(wǎng)絡(luò)爬蟲(chóng)會(huì)按照該文件的內(nèi)容確定訪問(wèn)網(wǎng)站的范圍。
robots.txt文件1.3.1Robots協(xié)議robots.txt文件中的內(nèi)容有著一套通用的寫(xiě)作規(guī)范。下面以豆瓣網(wǎng)站根目錄下的robots.txt文件為例,分析robots.txt文件的語(yǔ)法規(guī)則。
robots.txt文件1.3.1Robots協(xié)議
豆瓣網(wǎng)站robots.txt文件1.3.1Robots協(xié)議User-agent:
*Disallow:/subject_search...Disallow:/share/Allow:/ads.txtSitemap:/sitemap_index.xmlSitemap:/sitemap_updated_index.xml#Crawl-delay:5User-agent:WandoujiaSpiderDisallow:/User-agent:Mediapartners-Google...
robots.txt文件選項(xiàng)說(shuō)明1.3.1Robots協(xié)議User-agent:用于指定網(wǎng)絡(luò)爬蟲(chóng)的名稱(chēng)。若該選項(xiàng)的值為“*”,則說(shuō)明robots.txt文件對(duì)任何網(wǎng)絡(luò)爬蟲(chóng)均有效。帶有“*”號(hào)的User-agent選項(xiàng)只能出現(xiàn)一次。例如,示例的第一條語(yǔ)句User-agent:*。Disallow:用于指定網(wǎng)絡(luò)爬蟲(chóng)禁止訪問(wèn)的目錄。若Disallow選項(xiàng)的內(nèi)容為空,說(shuō)明網(wǎng)站的任何內(nèi)容都是被允許訪問(wèn)的。在robots.txt文件中,至少要有一個(gè)包含Disallow選項(xiàng)的語(yǔ)句。例如,Disallow:/subject_search禁止網(wǎng)絡(luò)爬蟲(chóng)訪問(wèn)目錄/subject_search。
robots.txt文件選項(xiàng)說(shuō)明1.3.1Robots協(xié)議Allow:用于指定網(wǎng)絡(luò)爬蟲(chóng)允許訪問(wèn)的目錄。例如,Allow:/ads.txt表示允許網(wǎng)絡(luò)爬蟲(chóng)訪問(wèn)目錄/ads.txt。Sitemap:用于告知網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)站地圖的路徑。例如,Sitemap:/sitemap_index.xml和/sitemap_updated_index.xml這兩個(gè)路徑都是網(wǎng)站地圖,主要說(shuō)明網(wǎng)站更新時(shí)間、更新頻率、網(wǎng)址重要程度等信息。1.3.1Robots協(xié)議Robots協(xié)議只是一個(gè)網(wǎng)站與網(wǎng)絡(luò)爬蟲(chóng)之間達(dá)成的“君子”協(xié)議,它并不是計(jì)算機(jī)中的防火墻,沒(méi)有實(shí)際的約束力。如果把網(wǎng)站比作私人花園,那么robots.txt文件便是私人花園門(mén)口的告示牌,這個(gè)告示牌上寫(xiě)有是否可以進(jìn)入花園,以及進(jìn)入花園后應(yīng)該遵守的規(guī)則,但告示牌并不是高高的圍欄,它只對(duì)遵守協(xié)議的“君子”有用,對(duì)于違背協(xié)議的人而言并沒(méi)有太大的作用。盡管Robots協(xié)議沒(méi)有一定的強(qiáng)制約束力,但網(wǎng)絡(luò)爬蟲(chóng)仍然要遵守協(xié)議,違背協(xié)議可能會(huì)存在一定的法律風(fēng)險(xiǎn)。熟悉防網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)對(duì)策略,能夠列舉至少3個(gè)應(yīng)對(duì)防網(wǎng)絡(luò)爬蟲(chóng)的策略學(xué)習(xí)目標(biāo)1.3.2防爬蟲(chóng)應(yīng)對(duì)策略1.3.2防爬蟲(chóng)應(yīng)對(duì)策略網(wǎng)絡(luò)爬蟲(chóng)會(huì)采取一些應(yīng)對(duì)策略繼續(xù)訪問(wèn)網(wǎng)站,常見(jiàn)的應(yīng)對(duì)策略包括添加User-Agent字段、降低訪問(wèn)頻率、設(shè)置代理服務(wù)、識(shí)別驗(yàn)證碼。添加User-Agent字段降低訪問(wèn)頻率設(shè)置代理服務(wù)器識(shí)別驗(yàn)證碼瀏覽器在訪問(wèn)網(wǎng)站時(shí)會(huì)攜帶固定的User-Agent(用戶代理,用于描述瀏覽器的類(lèi)型及版本、操作系統(tǒng)及版本、瀏覽器插件、瀏覽器語(yǔ)言等信息),向網(wǎng)站表明自己的真實(shí)身份。網(wǎng)絡(luò)爬蟲(chóng)每次訪問(wèn)網(wǎng)站時(shí)可以模仿瀏覽器的上述行為,也就是在請(qǐng)求網(wǎng)頁(yè)時(shí)攜帶User-Agent,將自己偽裝成一個(gè)瀏覽器,如此便可以繞過(guò)網(wǎng)站的檢測(cè),避免出現(xiàn)被網(wǎng)站服務(wù)器直接拒絕訪問(wèn)的情況。1.3.2防爬蟲(chóng)應(yīng)對(duì)策略添加User-Agent字段降低訪問(wèn)頻率設(shè)置代理服務(wù)器識(shí)別驗(yàn)證碼如果同一賬戶在較短的時(shí)間內(nèi)多次訪問(wèn)了網(wǎng)頁(yè),那么網(wǎng)站運(yùn)維人員會(huì)推斷此種訪問(wèn)行為可能是網(wǎng)絡(luò)爬蟲(chóng)的行為,并將該賬戶加入到黑名單禁止訪問(wèn)網(wǎng)站。為防止網(wǎng)站運(yùn)維人員從訪問(wèn)量上推斷出網(wǎng)絡(luò)爬蟲(chóng)的身份,可以降低網(wǎng)絡(luò)爬蟲(chóng)訪問(wèn)網(wǎng)站的頻率。不過(guò),這種方式會(huì)降低網(wǎng)絡(luò)爬蟲(chóng)的爬行效率,為了彌補(bǔ)這個(gè)不足,我們可以適當(dāng)?shù)卣{(diào)整一些操作,如讓網(wǎng)絡(luò)爬蟲(chóng)每抓取一次頁(yè)面數(shù)據(jù)就休息幾秒鐘,或者限制每天抓取的頁(yè)面數(shù)據(jù)的數(shù)量。1.3.2防爬蟲(chóng)應(yīng)對(duì)策略添加User-Agent字段降低訪問(wèn)頻率設(shè)置代理服務(wù)器識(shí)別驗(yàn)證碼網(wǎng)絡(luò)爬蟲(chóng)在訪問(wèn)網(wǎng)站時(shí),若反復(fù)使用同一IP地址進(jìn)行訪問(wèn),則極易被網(wǎng)站認(rèn)出網(wǎng)絡(luò)爬蟲(chóng)的身份后進(jìn)行屏蔽、阻止、封禁等。此時(shí)可以在網(wǎng)絡(luò)爬蟲(chóng)和Web服務(wù)器之間設(shè)置代理服務(wù)器。有了代理服務(wù)器之后,網(wǎng)絡(luò)爬蟲(chóng)會(huì)先將請(qǐng)求發(fā)送給代理服務(wù)器,代理服務(wù)器再轉(zhuǎn)發(fā)給服務(wù)器,這時(shí)服務(wù)器記錄的是代理服務(wù)器的IP地址,而不是網(wǎng)絡(luò)爬蟲(chóng)的IP地址。1.3.2防爬蟲(chóng)應(yīng)對(duì)策略添加User-Agent字段降低訪問(wèn)頻率設(shè)置代理服務(wù)器識(shí)別驗(yàn)證碼有些網(wǎng)站在檢測(cè)到某個(gè)客戶端的IP地址訪問(wèn)次數(shù)過(guò)于頻繁時(shí),會(huì)要求該客戶端進(jìn)行登錄驗(yàn)證,并隨機(jī)提供一個(gè)驗(yàn)證碼。為了應(yīng)對(duì)這種突發(fā)情況,網(wǎng)絡(luò)爬蟲(chóng)除了要輸入正確的賬戶密碼之外,還要像人類(lèi)一樣通過(guò)滑動(dòng)或點(diǎn)擊行為識(shí)別驗(yàn)證碼,如此才能繼續(xù)訪問(wèn)網(wǎng)站。由于驗(yàn)證碼的種類(lèi)較多,不同的驗(yàn)證碼需要采用不同的技術(shù)進(jìn)行識(shí)別,具有一定的技術(shù)難度。1.3.2防爬蟲(chóng)應(yīng)對(duì)策略網(wǎng)絡(luò)爬蟲(chóng)的工作原理和流程1.4掌握網(wǎng)絡(luò)爬蟲(chóng)的工作原理,能夠定義通用爬蟲(chóng)和聚焦爬蟲(chóng)的工作原理學(xué)習(xí)目標(biāo)1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理通用網(wǎng)絡(luò)爬蟲(chóng)和聚焦網(wǎng)絡(luò)爬蟲(chóng)是如何工作的?1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理通用網(wǎng)絡(luò)爬蟲(chóng)的采集目標(biāo)是整個(gè)互聯(lián)網(wǎng)上的所有網(wǎng)頁(yè),它會(huì)從一個(gè)或多個(gè)初始URL開(kāi)始,獲取初始URL對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),并不斷從該網(wǎng)頁(yè)數(shù)據(jù)中抽取新的URL放到隊(duì)列中,直至滿足一定的條件后停止。
通用網(wǎng)絡(luò)爬蟲(chóng)的工作原理1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理(1)獲取初始URL。既可以由用戶指定,也可以由待采集的初始網(wǎng)頁(yè)指定。(2)抓取頁(yè)面,并獲得新URL。根據(jù)初始URL抓取對(duì)應(yīng)的網(wǎng)頁(yè),之后將該網(wǎng)頁(yè)存儲(chǔ)到原始網(wǎng)頁(yè)數(shù)據(jù)庫(kù)中,并且在抓取網(wǎng)頁(yè)的同時(shí)對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行解析,并從中提取出新URL。(3)將新URL放入U(xiǎn)RL隊(duì)列。有了新URL之后,我們需要將新URL放入U(xiǎn)RL隊(duì)列中。(4)讀取新URL。從URL隊(duì)列中讀取新URL,并根據(jù)該URL獲取對(duì)應(yīng)網(wǎng)頁(yè)數(shù)據(jù),同時(shí)從新網(wǎng)頁(yè)中抽取新的URL。(5)是否滿足停止條件。若網(wǎng)絡(luò)爬蟲(chóng)滿足設(shè)置的停止條件,則停止采集;若網(wǎng)絡(luò)爬蟲(chóng)沒(méi)有滿足設(shè)置的停止條件,則繼續(xù)根據(jù)新URL抓取對(duì)應(yīng)的網(wǎng)頁(yè),并重復(fù)步驟(2)~(5)。聚焦網(wǎng)絡(luò)爬蟲(chóng)面向有特殊需求的人群,它會(huì)根據(jù)預(yù)先設(shè)定的主題順著某個(gè)垂直領(lǐng)域進(jìn)行抓取,而不是漫無(wú)目的地隨意抓取。與通用網(wǎng)絡(luò)爬蟲(chóng)相比,聚焦網(wǎng)絡(luò)爬蟲(chóng)會(huì)根據(jù)一定的網(wǎng)頁(yè)分析算法對(duì)網(wǎng)頁(yè)進(jìn)行篩選,保留與主題有關(guān)的網(wǎng)頁(yè)鏈接,舍棄與主題無(wú)關(guān)的網(wǎng)頁(yè)鏈接,其目的性更強(qiáng)。
聚焦網(wǎng)絡(luò)爬蟲(chóng)的工作原理1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理1.4.1網(wǎng)絡(luò)爬蟲(chóng)的工作原理(1)根據(jù)需求確定好聚焦網(wǎng)絡(luò)爬蟲(chóng)的采集目標(biāo),以及進(jìn)行相關(guān)的描述。(2)獲取初始URL。(3)根據(jù)初始URL抓取頁(yè)面,并獲得新URL。(4)從新URL中過(guò)濾掉與采集目標(biāo)無(wú)關(guān)的URL。(5)將過(guò)濾后的URL放到URL隊(duì)列中。(6)根據(jù)一定的抓取策略,從URL隊(duì)列中確定URL優(yōu)先級(jí),并確定下一步要抓取的URL。(7)從下一步要抓取的URL中讀取新URL,以準(zhǔn)備根據(jù)新URL抓取下一個(gè)網(wǎng)頁(yè)。(8)若聚焦網(wǎng)絡(luò)爬蟲(chóng)滿足設(shè)置的停止條件,或沒(méi)有可獲取的URL時(shí),停止采集;若網(wǎng)絡(luò)爬蟲(chóng)沒(méi)有滿足設(shè)置的停止條件,則繼續(xù)根據(jù)新URL抓取對(duì)應(yīng)的網(wǎng)頁(yè),并重復(fù)步驟(3)~(8)。熟悉網(wǎng)絡(luò)爬蟲(chóng)的工作流程,能夠歸納網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)頁(yè)的完整流程學(xué)習(xí)目標(biāo)1.4.2網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)頁(yè)的流程(1)選擇一些網(wǎng)頁(yè),將這些網(wǎng)頁(yè)的鏈接作為種子URL放入待抓取URL隊(duì)列中。(2)從待抓取URL隊(duì)列中依次讀取URL。(3)通過(guò)DNS解析URL,把URL地址轉(zhuǎn)換為網(wǎng)站服務(wù)器所對(duì)應(yīng)的IP地址。(4)將IP地址和網(wǎng)頁(yè)相對(duì)路徑名稱(chēng)交給網(wǎng)頁(yè)下載器,網(wǎng)頁(yè)下載器負(fù)責(zé)網(wǎng)頁(yè)內(nèi)容的下載。(5)網(wǎng)頁(yè)下載器將相應(yīng)網(wǎng)頁(yè)的內(nèi)容下載到本地。(6)將下載到本地的網(wǎng)頁(yè)存儲(chǔ)到頁(yè)面庫(kù)中,同時(shí)將使用過(guò)的URL放入到已抓取的URL隊(duì)列中,避免重復(fù)抓取。(7)對(duì)于剛下載的網(wǎng)頁(yè)中抽取出所包含的URL信息。(8)在已抓取URL隊(duì)列中檢查抽取的URL是否被下載過(guò)。如果它還未被下載過(guò),則將這個(gè)URL放入待抓取URL隊(duì)列中。如此重復(fù)(2)~(8),直到待抓取URL隊(duì)列為空。1.4.2網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)頁(yè)的流程網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)技術(shù)探究1.5了解網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù),能夠說(shuō)出使用Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)有哪些優(yōu)勢(shì)學(xué)習(xí)目標(biāo)1.5網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)技術(shù)探究為滿足用戶快速?gòu)木W(wǎng)頁(yè)上采集數(shù)據(jù)的需求,市面上出現(xiàn)了一些可視化界面的網(wǎng)絡(luò)爬蟲(chóng)工具,比如八爪魚(yú)采集器、火車(chē)頭采集器等。除了直接使用這些現(xiàn)成的工具之外,我們也可以開(kāi)發(fā)一個(gè)自己的網(wǎng)絡(luò)爬蟲(chóng)。目前,開(kāi)發(fā)網(wǎng)絡(luò)爬蟲(chóng)的語(yǔ)言主要有PHP、Go、C++、Java、Python共5種。
網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)1.5.1網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)1.5.1網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)PHPPHP語(yǔ)言的優(yōu)點(diǎn)是語(yǔ)法簡(jiǎn)潔,容易上手,擁有豐富的網(wǎng)絡(luò)爬蟲(chóng)功能模塊;缺點(diǎn)是對(duì)多線程的支持不太友好,需要借助擴(kuò)展實(shí)現(xiàn)多線程技術(shù),并發(fā)處理的能力相對(duì)較弱。GoC+Go語(yǔ)言的優(yōu)點(diǎn)是高并發(fā)能力強(qiáng)、開(kāi)發(fā)效率高、豐富的標(biāo)準(zhǔn)庫(kù),通過(guò)Go語(yǔ)言開(kāi)發(fā)的網(wǎng)絡(luò)爬蟲(chóng)程序性能更好;缺點(diǎn)是普及性不高。C++語(yǔ)言的優(yōu)點(diǎn)是運(yùn)行速度快、性能強(qiáng);缺點(diǎn)是學(xué)習(xí)成本高、代碼成型速度慢。網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)技術(shù)1.5.1網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度食品藥品安全評(píng)價(jià)技術(shù)服務(wù)協(xié)議2篇
- 二零二五年度臨時(shí)圍墻搭建與安全監(jiān)督服務(wù)合同3篇
- 幼兒園全園安全知識(shí)培訓(xùn)
- 如何有效地開(kāi)展區(qū)域活動(dòng)
- 2025年度租賃合同:展覽器材租賃與布展服務(wù)3篇
- 2025年度新能源項(xiàng)目專(zhuān)用的原煤供應(yīng)與保障合同模板3篇
- 二零二五年校園班班通設(shè)備采購(gòu)與技術(shù)支持協(xié)議2篇
- 2024物流運(yùn)輸與供應(yīng)鏈管理服務(wù)合同3篇
- 個(gè)性化定制2024車(chē)輛協(xié)議條款版A版
- 2024版冷凍海產(chǎn)品訂貨銷(xiāo)售協(xié)議版
- 《西游記》電子版閱讀-小學(xué)版
- 2021-2022學(xué)年北師大版六年級(jí)(上)數(shù)學(xué)寒假作業(yè)(一)
- GB/T 29490-2023企業(yè)知識(shí)產(chǎn)權(quán)合規(guī)管理體系要求
- 班組安全生產(chǎn)標(biāo)準(zhǔn)化管理手冊(cè)
- 攝影初級(jí)培訓(xùn)教程課件
- 幼兒園裝修合同
- GB/T 42615-2023在用電梯安全評(píng)估規(guī)范
- GB/T 31167-2023信息安全技術(shù)云計(jì)算服務(wù)安全指南
- 2023年成都市生物畢業(yè)會(huì)考知識(shí)點(diǎn)含會(huì)考試題及答案
- 藥品生產(chǎn)質(zhì)量管理規(guī)范-細(xì)胞治療產(chǎn)品附錄
- 《數(shù)學(xué)史選講》完整版
評(píng)論
0/150
提交評(píng)論