[發明專利]基于代碼模板和協程池的數據采集方法、系統及電子設備在審
| 申請號: | 202011461253.0 | 申請日: | 2020-12-14 |
| 公開(公告)號: | CN112231093A | 公開(公告)日: | 2021-01-15 |
| 發明(設計)人: | 靳林林;李漢軒;李際朝;李青龍 | 申請(專利權)人: | 北京智慧星光信息技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京智宇正信知識產權代理事務所(普通合伙) 11876 | 代理人: | 李明卓 |
| 地址: | 100080 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 代碼 模板 和協 數據 采集 方法 系統 電子設備 | ||
本發明公開了基于代碼模板和協程池的數據采集方法、系統及電子設備,該方法包括:列表頁協程池向調度服務發出任務請求,調度服務將調度服務分組隊列中隊列頭部的采集任務發送至列表頁協程池;列表頁協程池根據采集任務完成列表頁解析得到詳情頁URL,將詳情頁URL放入詳情頁URL消息隊列;詳情頁協程池從詳情頁URL消息隊列中獲取詳情頁URL,解析得到詳情頁數據,將詳情頁數據放入詳情頁數據消息隊列;數據處理協程池從詳情頁數據消息隊列中獲取詳情頁數據,并對詳情頁數據進行處理后標記采集任務完成,發送任務完成標記至列表頁協程池。通過三個協程池在執行過程中相互獨立,實現單個進程內多個執行單元的協作式調度,實現高并發持續執行。
技術領域
本發明涉及互聯網數據采集技術領域,具體涉及到一種基于代碼模板和協程池的數據采集方法、系統、電子設備及存儲介質。
背景技術
目前,在現有的互聯網數據采集方案中,為了提高數據采集速度,在功能實現方面,工作模式多是采用多線程或多進程,其優點是概念模型簡單,代碼易于編寫。但同時也存在缺點,線程和進程均是由操作系統參與調度,以搶占式的方式執行,系統負載會隨著并發數的提高而迅速增大。
發明內容
有鑒于此,本發明實施例提供了一種基于代碼模板和協程池的數據采集方法、系統、電子設備及存儲介質,以解決現有技術中系統負載隨著線程和進程并發數的提高而迅速增大的問題。
有鑒于此,本發明實施例提供了一種基于代碼模板和協程池的數據采集方法、系統、電子設備及存儲介質,以解決現有技術中系統負載隨著線程和進程并發數的提高而迅速增大的問題。
為此,本發明實施例提供了如下技術方案:
根據第一方面,本發明實施例提供了一種基于代碼模板和協程池的數據采集方法,包括:控制列表頁協程池向調度服務發出任務請求,所述調度服務根據接收到的所述任務請求確定所述任務請求的分組信息,根據分組信息確定調度服務分組隊列,將調度服務分組隊列中隊列頭部的采集任務發送至列表頁協程池;控制列表頁協程池接收調度服務發送的采集任務;控制列表頁協程池根據采集任務得到采集任務所對應的代碼模板,所述代碼模板中包含列表頁解析規則和詳情頁解析規則;控制列表頁協程池將所述代碼模板加載為采集模塊;控制列表頁協程池根據采集模塊得到采集模塊中的入口URL;控制列表頁協程池發送入口URL下載請求,得到入口URL下載結果;若入口URL下載結果不為空,則控制列表頁協程池獲取入口URL響應狀態碼;若入口URL響應狀態碼為第一預設狀態碼,則控制列表頁協程池調用采集模塊中的列表頁解析規則得到詳情頁URL;控制列表頁協程池將詳情頁URL放入詳情頁URL消息隊列;控制詳情頁協程池從詳情頁URL消息隊列中獲取詳情頁URL;控制詳情頁協程池發送詳情頁URL下載請求,得到詳情頁URL下載結果;若詳情頁URL下載結果不為空,則控制詳情頁協程池獲取詳情頁響應狀態碼;若詳情頁響應狀態碼為第二預設狀態碼,則控制詳情頁協程池調用采集模塊中的詳情頁解析規則得到詳情頁數據;控制詳情頁協程池將詳情頁數據放入詳情頁數據消息隊列;控制數據處理協程池從詳情頁數據消息隊列中獲取詳情頁數據,按照詳情頁數據中的地址分發至外部消息隊列;控制數據處理協程池標記采集任務完成,并發送任務完成標記至列表頁協程池。
可選地,控制列表頁協程池根據采集任務得到采集任務所對應的代碼模板的步驟中,包括:控制列表頁協程池根據采集任務得到采集任務所對應的代碼模板的更新時間,并根據更新時間得到更新結果;若更新結果為有更新,則控制列表頁協程池向調度服務請求更新的代碼模板,將接收到的更新代碼模板作為采集任務所對應的代碼模板;若更新結果為無更新,則控制列表頁協程池在本地代碼模板庫中查找采集任務所對應的代碼模板,得到查找結果;若查找結果為存在,則控制列表頁協程池加載本地代碼模板庫中的代碼模板,將本地代碼模板庫中的代碼模板作為采集任務所對應的代碼模板;若查找結果為不存在,則控制列表頁協程池向調度服務請求代碼模板,將接收到的代碼模板作為采集任務所對應的代碼模板。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京智慧星光信息技術有限公司,未經北京智慧星光信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011461253.0/2.html,轉載請聲明來源鉆瓜專利網。





