[發明專利]一種通用的互聯網數據采集反反爬系統及方法有效
| 申請號: | 201711037128.5 | 申請日: | 2017-10-30 |
| 公開(公告)號: | CN109729044B | 公開(公告)日: | 2022-01-14 |
| 發明(設計)人: | 白曉哲;尚林林 | 申請(專利權)人: | 北京宸瑞科技股份有限公司 |
| 主分類號: | H04L9/40 | 分類號: | H04L9/40;H04L67/02 |
| 代理公司: | 北京康思博達知識產權代理事務所(普通合伙) 11426 | 代理人: | 劉冬梅;路永斌 |
| 地址: | 100190 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 通用 互聯網 數據 采集 反反爬 系統 方法 | ||
1.一種通用的互聯網數據采集反反爬方法,其特征在于,該方法包括以下步驟:
步驟1:通過UA頭發送模塊(011)接收服務器提出的UA驗證請求,從UA頭列表(012)中隨機抽取UA頭,向服務器提供隨機UA頭;
步驟2:通過代理IP發送模塊(021)接收服務器提出的IP驗證請求,并向代理IP管理模塊(022)發送調取代理IP的請求,代理IP管理模塊(022)從IP代理池(023)中獲取隨機代理IP后傳送至代理IP發送模塊(021),經附加代理IP于HTTP請求頭中后,向服務器提供代理IP;
步驟3:通過請求間隔控制模塊(031)控制請求源對服務器的請求間隔,使請求間隔隨機化;
步驟4:通過登錄請求查詢模塊(041)確定服務器是否發送登錄請求,若服務器發送登錄請求,通過自動登錄模塊(044)以拼接登錄鏈接模式或者內置無界面瀏覽器模式實施網站登錄;若服務器未發送登錄請求,則登錄請求查詢模塊(041)不進行信號傳送及后續自動登錄模塊(044)不進行相關登錄操作;
步驟5:通過驗證碼請求查詢模塊(051)確定服務器是否發送驗證碼請求,若服務器發送驗證碼請求,則驗證碼請求查詢模塊(051)將請求信號傳送至驗證碼識別模塊(052),驗證碼識別模塊(052)接收驗證碼請求查詢模塊(051)傳送的請求信號,對驗證碼進行文字識別,并進行驗證碼文字輸入;若服務器未發送驗證碼請求,則驗證碼請求查詢模塊(051)不進行信號傳送;
步驟1中,還包括通過UA頭管理模塊(013)在UA頭列表(012)中構建UA頭子列表,將UA頭列表(012)中載有相同瀏覽器不同版本信息的UA頭劃入同一個UA頭子列表中,形成瀏覽器分組;
通過UA頭管理模塊(013)獲取瀏覽器的最新版本信息,并對UA頭列表(012)中的UA頭進行更新,獲得更新后的UA頭列表(012);
通過UA頭管理模塊(013)獲取最新的瀏覽器市場占有份額的數據,采用數組填充法對各UA頭子列表中UA頭被抽取的概率進行設定,使各UA頭子列表中UA頭被抽取的概率與其對應的瀏覽器的市場占有份額相符;
步驟2中,還包括通過代理IP管理模塊(022)利用免費網址或收費渠道獲得大量的穩定代理IP,經檢測有效后存入IP代理池(023)中;
其中,代理IP管理模塊(022)檢測代理IP有效性的核心代碼為:telnetlib.Telnet('ip',port='80',timeout=10);
通過代理IP管理模塊(022)對IP代理池(023)中的代理IP進行監控,統計采用各代理IP的請求被網站拒絕或開放的次數,其中統計項目包括各代理IP訪問的網站、拒絕次數、成功次數,還包括拒絕請求的時間點和允許訪問的時間點,并將統計結果存入代理IP數據存儲模塊(024);
通過代理IP數據存儲模塊(024)對其存儲的數據按訪問網站進行項目劃分,在特定訪問網站的項目下,根據拒絕次數或成功次數將代理IP數據排序,根據設定的拒絕次數和/或成功次數將排序后的代理IP數據分為高價值組、低價值組和無價值組;
步驟3中,將請求間隔控制模塊(031)與代理IP管理模塊(022)相關聯,請求間隔控制模塊(031)將設定的獲取網站中網頁信息的標準速度S與目標網站的最大允許訪問頻率發送至代理IP管理模塊(022),代理IP管理模塊(022)根據接收到的數據選擇代理IP,依次提供給代理IP發送模塊(021);
當請求間隔控制模塊(031)設定的獲取網站中網頁信息的標準速度S等于或接近目標網站的最大允許訪問頻率時,采用高價值組內代理IP;當請求間隔控制模塊(031)設定的獲取網站中網頁信息的標準速度S較大程度的低于目標網站的最大允許訪問頻率時,采用低價值組內代理IP;當請求間隔控制模塊(031)設定的獲取網站中網頁信息的標準速度S介于上述兩種情況設定的標準速度之間時,混合采用高價值組和低價值組內代理IP;
步驟4中,以拼接登錄鏈接模式登陸的過程為:
通過登錄請求查詢模塊(041)確定服務器是否發送登錄請求,若服務器發送登錄請求,則登錄請求查詢模塊(041)將請求信號傳送至鏈接拼接模塊(042),鏈接拼接模塊(042)拼接登錄鏈接后,將登錄鏈接傳送至自動登錄模塊(044),自動登錄模塊(044)依照登錄邏輯實現登錄;若服務器未發送登錄請求,則登錄請求查詢模塊(041)不進行信號傳送,及后續自動登錄模塊(044)不進行相關登錄操作;
以內置無界面瀏覽器模式登陸的過程為:
通過登錄請求查詢模塊(041)確定服務器是否發送登錄請求,若服務器發送登錄請求則登錄請求查詢模塊(041)將請求信號傳送至輸入框定位模塊(043),輸入框定位模塊(043)獲取目標網站登錄窗口中相應輸入框的URL,并將該URL發送至自動登錄模塊(044),自動登錄模塊(044)采用Selenium WebDriver+PhantomJs技術實現相應輸入框內容的輸入,并利用獲取Cookie的核心代碼獲取Cookie,實現目標網站的自動登錄;若服務器未發送登錄請求則登錄請求查詢模塊(041)不進行信號傳送,及后續自動登錄模塊(044)不進行相關登錄操作。
2.根據權利要求1所述的方法,其特征在于,步驟3中,還包括通過請求間隔控制模塊(031)測試目標網站的最大允許訪問頻率,以及記錄請求源對目標網站的實際訪問頻率,根據算法公式Ti=Ti-1+Kp*(S-N),控制請求間隔;
其中,i為自然數,i=1,2,3,…;
Ti是對第i次請求設定的延時時間;
Ti-1是對第i-1次請求設定的延時時間;
Kp為比例系數,為-0.05;
S是設定的獲取目標網站中網頁信息的標準速度,單位為頁/分鐘;
N是請求間隔控制模塊(031)統計獲得的請求源對目標網站的實際訪問頻率,單位為頁/分鐘。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京宸瑞科技股份有限公司,未經北京宸瑞科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711037128.5/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





