本發(fā)明專利技術(shù)提供了一種抓取動(dòng)態(tài)頁面的方法,用于chromium瀏覽器,方法包括:接收爬蟲抓取頁面請(qǐng)求;將抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使管理程序?qū)⑺鲎ト№撁嬲?qǐng)求的負(fù)載分配于chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。另一方面本發(fā)明專利技術(shù)還提供了一種抓取動(dòng)態(tài)頁面的系統(tǒng)、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)。通過定制化開發(fā)chromium瀏覽器,攔截了不必要信息,減少了抓取過程中頁面渲染的冗余;通過設(shè)置管理程序,該管理程序可將抓取請(qǐng)求負(fù)載分配于多個(gè)chromium進(jìn)程,多個(gè)chromium進(jìn)程同時(shí)抓取,提高了抓取效率;通過負(fù)載均衡設(shè)備均衡,可搭建多個(gè)chromium瀏覽器集群,通用性和擴(kuò)展性好。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種抓取動(dòng)態(tài)頁面的方法、系統(tǒng)、設(shè)備及介質(zhì)
本專利技術(shù)涉及爬蟲
,尤其涉及一種抓取動(dòng)態(tài)頁面的方法、系統(tǒng)、設(shè)備及介質(zhì)。
技術(shù)介紹
當(dāng)前分布式爬蟲框架對(duì)動(dòng)態(tài)頁面抓取的功能,在高并發(fā)的場(chǎng)景下,抓取速度慢,失敗率高,對(duì)服務(wù)器資源利用不合理;當(dāng)前分布式爬蟲框架對(duì)動(dòng)態(tài)頁面的抓取功能與爬蟲框架本身高度耦合,動(dòng)態(tài)頁面抓取功能無法做到通用;當(dāng)前分布式爬蟲框架利用瀏覽器做頁面渲染時(shí),會(huì)存在很多冗余過程,降低了頁面渲染抓取效率。
技術(shù)實(shí)現(xiàn)思路
(一)要解決的技術(shù)問題本專利技術(shù)提供了一種抓取動(dòng)態(tài)頁面的方法、系統(tǒng)、設(shè)備及介質(zhì),以提供爬蟲抓取動(dòng)態(tài)頁面時(shí)的效率、穩(wěn)定性和通用性。(二)技術(shù)方案本專利技術(shù)提供了一種抓取動(dòng)態(tài)頁面的方法,用于chromium瀏覽器,方法包括:接收爬蟲抓取頁面請(qǐng)求;將抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使所述管理程序?qū)⒆ト№撁嬲?qǐng)求的負(fù)載分配于chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。可選地,將所述抓取頁面請(qǐng)求的負(fù)載分配于多個(gè)chromium進(jìn)程具體為管理程序根據(jù)最小連接數(shù)調(diào)度算法將抓取頁面請(qǐng)求的負(fù)載分配于多個(gè)chromium進(jìn)程。可選地,通過負(fù)載均衡設(shè)備將抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序。可選地,負(fù)載均衡設(shè)備為L(zhǎng)VS(Linux虛擬服務(wù)器)、Nginx、HAproxy中的一個(gè)。可選地,管理程序與所述chromium瀏覽器和負(fù)載均衡設(shè)備連接,用于將負(fù)載均衡設(shè)備分配的抓取頁面請(qǐng)求分配于chromium瀏覽器。可選地,chromium瀏覽器通過websocket的通信方式與管理程序進(jìn)行信息交互。可選地,chromium瀏覽器還包括攔截程序,以攔截彈出窗口、忽略SSL證書錯(cuò)誤以及非抓取頁面的信息。另一方面,本專利技術(shù)還提供了一種電子設(shè)備,設(shè)備包括:處理器;存儲(chǔ)器,其存儲(chǔ)有計(jì)算機(jī)可執(zhí)行程序,該程序在被處理器執(zhí)行時(shí),使得處理器執(zhí)行上述的抓取動(dòng)態(tài)頁面的方法。又一方面,本專利技術(shù)還提供了一種抓取動(dòng)態(tài)頁面的系統(tǒng),其特征在于,包括:接收模塊,用于接收爬蟲抓取頁面請(qǐng)求;分配模塊,用于將抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使管理程序?qū)⒆ト№撁嬲?qǐng)求的負(fù)載分配于chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。又一方面,本專利技術(shù)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述的抓取動(dòng)態(tài)頁面的方法。(三)有益效果通過定制化開發(fā)chromium瀏覽器,攔截了不必要信息,減少了抓取過程中頁面渲染的冗余;通過設(shè)置管理程序,該管理程序可將抓取請(qǐng)求負(fù)載分配于多個(gè)chromium進(jìn)程,多個(gè)chromium進(jìn)程同時(shí)抓取,提高了抓取效率;通過LVS做負(fù)載均衡,可搭建對(duì)個(gè)chromium瀏覽器集群,通用性和擴(kuò)展性好。附圖說明圖1示意性示出了本公開實(shí)施例中的抓取動(dòng)態(tài)頁面的方法步驟圖;圖2示意性示出了本公開實(shí)施例中的抓取動(dòng)態(tài)頁面的流程圖;圖3示意性示出了本公開實(shí)施例中的電子設(shè)備的框圖;圖4示意性示出了本公開實(shí)施例中的抓取動(dòng)態(tài)頁面的系統(tǒng)圖。具體實(shí)施方式為使本專利技術(shù)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本專利技術(shù)進(jìn)一步詳細(xì)說明。本專利技術(shù)一方面提供了一種抓取動(dòng)態(tài)頁面的方法,參見圖1,用于chromium瀏覽器,方法包括:接收爬蟲抓取頁面請(qǐng)求;將抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使管理程序?qū)⒆ト№撁嬲?qǐng)求的負(fù)載分配于chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。具體的,S1,接收爬蟲抓取頁面請(qǐng)求;負(fù)載均衡設(shè)備接收爬蟲抓取頁面的請(qǐng)求,本專利技術(shù)實(shí)施例中的負(fù)載均衡設(shè)備優(yōu)選為L(zhǎng)VS、Nginx、HAproxy中的一個(gè),本專利技術(shù)實(shí)施例以LVS為例,LVS接收爬蟲抓取頁面的請(qǐng)求按照預(yù)設(shè)算法將抓取頁面的請(qǐng)求對(duì)應(yīng)的負(fù)載分發(fā)給各多個(gè)服務(wù)器,可同時(shí)接收多個(gè)抓取頁面請(qǐng)求業(yè)務(wù)。S2,抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使管理程序?qū)⒆ト№撁嬲?qǐng)求的負(fù)載分配于chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。LVS將抓取頁面的請(qǐng)求分配于服務(wù)器集群,服務(wù)器集群中服務(wù)器的數(shù)量可根據(jù)實(shí)際需要設(shè)定,LVS上設(shè)有服務(wù)器連接接口,且接口可擴(kuò)展,因此服務(wù)器的增加和減少十分方便。服務(wù)器集群中的每臺(tái)服務(wù)器上均設(shè)有管理程序,管理程序與chromium瀏覽器和負(fù)載均衡設(shè)備連接,用于將負(fù)載均衡設(shè)備分配的抓取頁面請(qǐng)求分配于chromium瀏覽器。該管理程序可采用最小連接數(shù)調(diào)度算法將抓取頁面請(qǐng)求的負(fù)載分配與chromium瀏覽器的多個(gè)chromium進(jìn)程,該管理程序提供單獨(dú)的管理進(jìn)程的服務(wù),便于建立chromium進(jìn)程集群,以滿足抓取速度的需要。其中,最小連接調(diào)度算法是把新的連接請(qǐng)求分配到當(dāng)前連接數(shù)最小的chromium瀏覽器,最小連接調(diào)度是一種動(dòng)態(tài)調(diào)度算法,它通過chromium瀏覽器當(dāng)前所活躍的連接數(shù)來估計(jì)chromium瀏覽器的負(fù)載情況,同時(shí),記錄各個(gè)chromium瀏覽器已建立連接的數(shù)目,當(dāng)一個(gè)請(qǐng)求被調(diào)度到某chromium瀏覽器,其連接數(shù)加1;當(dāng)連接中止或超時(shí),其連接數(shù)減一。上述管理程序可通過golang語言開發(fā),以日工高性能的傳輸協(xié)議,更好的接收爬蟲抓取請(qǐng)求。定制化的chromium瀏覽器,該瀏覽器可以采用chromeDevTools協(xié)議開發(fā),使其能通過websocket的通信方式與管理程序進(jìn)行信息交互,以接收調(diào)用指令調(diào)用chromium進(jìn)程。WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,WebSocket使得瀏覽器和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向?yàn)g覽器推送數(shù)據(jù)。在WebSocketAPI中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。因此,本專利技術(shù)實(shí)施例中,WebSocket使得chromium瀏覽器和動(dòng)態(tài)頁面所在的服務(wù)器之間建立通信連接,數(shù)據(jù)交換變得更加簡(jiǎn)單,抓取到的動(dòng)態(tài)頁面可以主動(dòng)傳輸至chromium瀏覽器,進(jìn)而chromium瀏覽器將抓取到的頁面?zhèn)鬏斀o用戶。另外該chromium瀏覽器還設(shè)有攔截程序,該攔截程序可攔截彈出窗口、忽略SSL證書錯(cuò)誤以及非抓取頁面的信息等,有效減少了抓取頁面經(jīng)瀏覽器進(jìn)行頁面渲染時(shí)的冗余,使得抓取頁面的速度更快。綜上所述,如圖2所示,首先根據(jù)用戶需求應(yīng)用爬蟲技術(shù)抓取動(dòng)態(tài)頁面,因此發(fā)出抓取頁面請(qǐng)求,LVS等負(fù)載均衡設(shè)備將抓取頁面請(qǐng)求分配與服務(wù)器集群,服務(wù)器集群中每一服務(wù)器均設(shè)有一定制化的chromium瀏覽器,另外還包括一管理程序,該管理程序接收到LVS等負(fù)載均衡設(shè)備分配的抓取頁面請(qǐng)求后根據(jù)最小連接數(shù)調(diào)度算法將抓取頁面請(qǐng)求進(jìn)一步分配與chromium瀏覽器的多個(gè)進(jìn)程中,多個(gè)進(jìn)程在動(dòng)態(tài)頁面服務(wù)器(WebSite)上抓取頁面,并通過WebSocket通信協(xié)議將抓取到的內(nèi)容發(fā)送至用戶。再一方面,本專利技術(shù)實(shí)施例提供了一種電子設(shè)備,參見圖3,為本專利技術(shù)實(shí)施例的電子設(shè)備框圖,電子設(shè)備300包括:處理器301和存儲(chǔ)器302,該電子設(shè)備300可以執(zhí)行根據(jù)本專利技術(shù)實(shí)施例的方法。具體的,處理器301例本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種抓取動(dòng)態(tài)頁面的方法,用于chromium瀏覽器,其特征在于,方法包括:接收爬蟲抓取頁面請(qǐng)求;將所述抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使所述管理程序?qū)⑺鲎ト№撁嬲?qǐng)求的負(fù)載分配于所述chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過所述多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。
【技術(shù)特征摘要】
1.一種抓取動(dòng)態(tài)頁面的方法,用于chromium瀏覽器,其特征在于,方法包括:接收爬蟲抓取頁面請(qǐng)求;將所述抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序,以使所述管理程序?qū)⑺鲎ト№撁嬲?qǐng)求的負(fù)載分配于所述chromium瀏覽器的多個(gè)chromium進(jìn)程,以通過所述多個(gè)chromium進(jìn)程抓取網(wǎng)頁中的動(dòng)態(tài)頁面。2.根據(jù)權(quán)利要求1所述的抓取動(dòng)態(tài)頁面的方法,其特征在于,所述將所述抓取頁面請(qǐng)求的負(fù)載分配于多個(gè)chromium進(jìn)程具體為所述管理程序根據(jù)最小連接數(shù)調(diào)度算法將所述抓取頁面請(qǐng)求的負(fù)載分配于所述多個(gè)chromium進(jìn)程。3.根據(jù)權(quán)利要求1所述的抓取動(dòng)態(tài)頁面的方法,其特征在于,通過負(fù)載均衡設(shè)備將所述抓取頁面請(qǐng)求的負(fù)載分配于多臺(tái)服務(wù)器的管理程序。4.根據(jù)權(quán)利要求3所述的抓取動(dòng)態(tài)頁面的方法,其特征在于,所述負(fù)載均衡設(shè)備為L(zhǎng)VS、Nginx、HAproxy中的一個(gè)。5.根據(jù)權(quán)利要求3所述的抓取動(dòng)態(tài)頁面的方法,其特征在于,所述管理程序與所述chromium瀏覽器和負(fù)載均衡設(shè)備連接,用于將負(fù)載均衡設(shè)備分配的抓取頁面請(qǐng)求分配于所述chrom...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:沈鵬,顧鵬飛,
申請(qǐng)(專利權(quán))人:北京奇安信科技有限公司,
類型:發(fā)明
國(guó)別省市:北京,11
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。