[發(fā)明專利]控制網(wǎng)絡(luò)爬蟲的任務(wù)分配方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201610243866.4 | 申請(qǐng)日: | 2016-04-18 |
| 公開(公告)號(hào): | CN107305548B | 公開(公告)日: | 2020-02-28 |
| 發(fā)明(設(shè)計(jì))人: | 楊杰 | 申請(qǐng)(專利權(quán))人: | 北京國雙科技有限公司 |
| 主分類號(hào): | G06F16/951 | 分類號(hào): | G06F16/951 |
| 代理公司: | 北京康信知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11240 | 代理人: | 韓建偉;張永明 |
| 地址: | 100083 北京市海淀區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 控制 網(wǎng)絡(luò) 爬蟲 任務(wù) 分配 方法 裝置 | ||
本申請(qǐng)公開了一種控制網(wǎng)絡(luò)爬蟲的任務(wù)分配方法和裝置。其中,網(wǎng)絡(luò)爬蟲采用多線程執(zhí)行任務(wù),多線程預(yù)先存放于線程池內(nèi),該方法包括:通過信號(hào)量判斷多線程中的任務(wù)線程的數(shù)量是否達(dá)到任務(wù)最大并行數(shù),其中,信號(hào)量的初始值為任務(wù)最大并行數(shù),任務(wù)線程為經(jīng)過信號(hào)量的線程;在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量達(dá)到任務(wù)最大并行數(shù)時(shí),阻止線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù);以及在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量未達(dá)到任務(wù)最大并行數(shù)時(shí),控制線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù)。本申請(qǐng)解決了相關(guān)技術(shù)中通過中間控制器分配網(wǎng)絡(luò)爬蟲任務(wù)導(dǎo)致爬蟲系統(tǒng)變得較為復(fù)雜的技術(shù)問題。
技術(shù)領(lǐng)域
本申請(qǐng)涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種控制網(wǎng)絡(luò)爬蟲的任務(wù)分配方法和裝置。
背景技術(shù)
網(wǎng)絡(luò)爬蟲爬取網(wǎng)頁時(shí)會(huì)從一個(gè)或若干初始網(wǎng)頁的統(tǒng)一資源定位符(UniformResource Locator,簡稱為URL)開始,抽取初始網(wǎng)頁上的所有URL,并放入U(xiǎn)RL隊(duì)列,等待網(wǎng)絡(luò)爬蟲從URL隊(duì)列獲取一個(gè)新的URL繼續(xù)執(zhí)行網(wǎng)頁爬取。現(xiàn)有方法是通過中間控制器來給網(wǎng)絡(luò)爬蟲分配任務(wù),所以網(wǎng)絡(luò)爬蟲任務(wù)的分配非常依賴于中間控制器,當(dāng)中間控制器出現(xiàn)異常情況時(shí)會(huì)導(dǎo)致網(wǎng)絡(luò)爬蟲分配不到任務(wù)或者分配過多任務(wù),如果網(wǎng)絡(luò)爬蟲分配不到任務(wù)就會(huì)一直處于空閑狀態(tài),浪費(fèi)機(jī)器資源;如果網(wǎng)絡(luò)爬蟲同時(shí)執(zhí)行過多的任務(wù)則會(huì)導(dǎo)致網(wǎng)絡(luò)爬蟲崩潰,造成任務(wù)和數(shù)據(jù)的丟失,帶來較為嚴(yán)重的后果。
具體地,現(xiàn)有通過中間控制器分配網(wǎng)絡(luò)爬蟲任務(wù)的方法存在如下缺點(diǎn):首先,需要另寫一個(gè)中間控制器程序分配網(wǎng)絡(luò)爬蟲的爬取任務(wù),使得整個(gè)爬蟲系統(tǒng)變得復(fù)雜,不易維護(hù);其次,網(wǎng)絡(luò)爬蟲任務(wù)的分配非常依賴中間控制器程序,當(dāng)中間控制器程序出現(xiàn)異常崩潰時(shí),會(huì)存在數(shù)據(jù)丟失或是浪費(fèi)機(jī)器資源的問題。
針對(duì)相關(guān)技術(shù)中通過中間控制器分配網(wǎng)絡(luò)爬蟲任務(wù)導(dǎo)致爬蟲系統(tǒng)變得較為復(fù)雜的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本申請(qǐng)的主要目的在于提供一種控制網(wǎng)絡(luò)爬蟲的任務(wù)分配方法和裝置,以解決相關(guān)技術(shù)中通過中間控制器分配網(wǎng)絡(luò)爬蟲任務(wù)導(dǎo)致爬蟲系統(tǒng)變得較為復(fù)雜的問題。
為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種控制網(wǎng)絡(luò)爬蟲的任務(wù)分配方法。網(wǎng)絡(luò)爬蟲采用多線程執(zhí)行任務(wù),多線程預(yù)先存放于線程池內(nèi),該方法包括:通過信號(hào)量判斷多線程中的任務(wù)線程的數(shù)量是否達(dá)到任務(wù)最大并行數(shù),其中,信號(hào)量的初始值為任務(wù)最大并行數(shù),任務(wù)線程為經(jīng)過信號(hào)量的線程;在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量達(dá)到任務(wù)最大并行數(shù)時(shí),阻止線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù);以及在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量未達(dá)到任務(wù)最大并行數(shù)時(shí),控制線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù)。
進(jìn)一步地,通過信號(hào)量判斷多線程中的任務(wù)線程的數(shù)量是否達(dá)到任務(wù)最大并行數(shù)包括:判斷信號(hào)量的值是否為0;在判斷出信號(hào)量的值為0時(shí),則確定多線程中的任務(wù)線程的數(shù)量達(dá)到任務(wù)最大并行數(shù);以及在判斷出信號(hào)量的值不為0時(shí),則確定多線程中的任務(wù)線程的數(shù)量未達(dá)到任務(wù)最大并行數(shù)。
進(jìn)一步地,在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量未達(dá)到任務(wù)最大并行數(shù)時(shí),控制線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù)之后,該方法還包括:將信號(hào)量的值減1,在任務(wù)線程的任務(wù)執(zhí)行完成或取消時(shí),方法還包括:將信號(hào)量的值加1。
進(jìn)一步地,在通過信號(hào)量判斷出多線程中的任務(wù)線程的數(shù)量達(dá)到任務(wù)最大并行數(shù)時(shí),阻止線程池內(nèi)的線程從URL隊(duì)列中獲取任務(wù)之后,該方法還包括:控制線程池內(nèi)的線程進(jìn)入等待狀態(tài)。
進(jìn)一步地,在通過信號(hào)量判斷多線程中的任務(wù)線程的數(shù)量是否達(dá)到任務(wù)最大并行數(shù)之前,該方法還包括:在網(wǎng)絡(luò)爬蟲啟動(dòng)時(shí),從數(shù)據(jù)庫中讀取任務(wù)最大并行數(shù),其中,數(shù)據(jù)庫中預(yù)先存儲(chǔ)有任務(wù)最大并行數(shù);以及將任務(wù)最大并行數(shù)賦值給信號(hào)量,并作為信號(hào)量的初始值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京國雙科技有限公司,未經(jīng)北京國雙科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610243866.4/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 網(wǎng)絡(luò)和網(wǎng)絡(luò)終端
- 網(wǎng)絡(luò)DNA
- 網(wǎng)絡(luò)地址自適應(yīng)系統(tǒng)和方法及應(yīng)用系統(tǒng)和方法
- 網(wǎng)絡(luò)系統(tǒng)及網(wǎng)絡(luò)至網(wǎng)絡(luò)橋接器
- 一種電力線網(wǎng)絡(luò)中根節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)調(diào)方法和系統(tǒng)
- 一種多網(wǎng)絡(luò)定位方法、存儲(chǔ)介質(zhì)及移動(dòng)終端
- 網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)方法以及網(wǎng)絡(luò)程序
- 從重復(fù)網(wǎng)絡(luò)地址自動(dòng)恢復(fù)的方法、網(wǎng)絡(luò)設(shè)備及其存儲(chǔ)介質(zhì)
- 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、裝置及存儲(chǔ)介質(zhì)
- 網(wǎng)絡(luò)管理方法和裝置
- 檢測反爬蟲策略安全性的方法及裝置
- 一種監(jiān)控網(wǎng)絡(luò)爬蟲的方法、裝置和系統(tǒng)
- 一種通過爬蟲狀態(tài)機(jī)管理爬蟲的方法及裝置
- 爬蟲協(xié)議管理方法及裝置、爬蟲系統(tǒng)
- 基于APP客戶端的爬蟲及爬取方法
- 視頻業(yè)務(wù)處理方法、裝置及電子設(shè)備
- 一種爬蟲方法、裝置、系統(tǒng)、設(shè)備及可讀存儲(chǔ)介質(zhì)
- 分布式爬蟲系統(tǒng)架構(gòu)、爬取數(shù)據(jù)的方法和計(jì)算機(jī)設(shè)備
- 基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法
- 多中心綜合網(wǎng)絡(luò)爬蟲系統(tǒng)
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動(dòng)分配和推送的任務(wù)管理平臺(tái)及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲(chǔ)介質(zhì)
- 基于會(huì)話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)





