網(wǎng)絡(luò )爬蟲(chóng)的完整技術(shù)體系
優(yōu)采云 發(fā)布時(shí)間: 2020-05-02 08:08這四個(gè)層次的功能原理解釋如下。
1、網(wǎng)絡(luò )聯(lián)接層:主要有TCP Socket聯(lián)接的完善、數據傳輸以及聯(lián)接管理組成。由于目前Web服務(wù)器支持的HTTP/1.0或1.1合同,在響應爬蟲(chóng)的懇求以后并不會(huì )關(guān)掉TCP聯(lián)接,同時(shí)HTTP/1.1支持管線(xiàn)模式,因此當爬蟲(chóng)在多次抓取一個(gè)網(wǎng)站的頁(yè)面時(shí),Socket聯(lián)接的完善、斷開(kāi)及URL懇求和結果的接收須要根據一定的次序進(jìn)行。在爬蟲(chóng)執行過(guò)程中,可能須要重新聯(lián)接Web服務(wù)器的情況,為了減少域名到IP地址轉換的時(shí)間,爬蟲(chóng)一般要支持DNS緩存。
2、頁(yè)面采集層:主要包括對URL的處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,從中提取域名,并根據robots規范決定URL的抓取許可,同時(shí)在面對諸多的爬行任務(wù)時(shí),需要根據一定的搜索策略來(lái)決定URL的抓取次序。在抓取頁(yè)面時(shí)大數據網(wǎng)絡(luò )爬蟲(chóng)原理,如果涉及到動(dòng)態(tài)頁(yè)面,可能須要考慮在爬蟲(chóng)中實(shí)現Session機制。最終的URL命令及結果是通過(guò)HTTP合同數據包發(fā)送的,其中的腹部信息中可以指定cookie信息。
3、頁(yè)面提取層:該層完成了HTML文本信息的處理,主要是從中提取超鏈接、正文信息等內容,因此須要根據相應的HTML編碼規范進(jìn)行。同時(shí),由于不同網(wǎng)站對Web頁(yè)面信息的編碼方法并不完全相同,例如UTF8、unicode、gbk等等,在解析文本信息時(shí)須要考慮頁(yè)面的編碼方法。當然目前有好多的開(kāi)源框架支持頁(yè)面解析,包括lxml、BeautifulSoup等,需要把握一些相應的規范,例如xpath。
4、領(lǐng)域處理層:這是指一些特定類(lèi)型爬蟲(chóng)須要完成的功能,對于普通爬蟲(chóng)而言,這層并不需要。這些領(lǐng)域處理主要有:主題爬蟲(chóng)、DeepWeb爬蟲(chóng),因此須要一定的文本剖析技術(shù)來(lái)支持,包括文本動(dòng)詞、主題建模等。
作者編繪的《互聯(lián)網(wǎng)大數據處理技術(shù)與應用》專(zhuān)著(zhù)(清華大學(xué)出版社,2017)、同名公眾號,專(zhuān)注于大數據技術(shù)的相關(guān)科學(xué)和工程知識傳播,同時(shí)也為讀者提供一些拓展閱讀材料。歡迎選用本書(shū)做大數據相關(guān)專(zhuān)業(yè)的教材,有相關(guān)教學(xué)資源共享。


