爬蟲與反爬 爬蟲:自動獲取網站數據的程式,關鍵是批量的獲取。 反爬蟲:使用技術手段防止爬蟲程式的方法 誤傷:反爬技術將普通用戶識別為爬蟲,從而限制其訪問,如果誤傷過高,反爬效果再好也不能使用(例如封ip,只會限制ip在某段時間內不能訪問) 成本:反爬蟲需要的人力和機器成本 攔截:成功攔截爬蟲,一般攔 ...
爬蟲與反爬
爬蟲:自動獲取網站數據的程式,關鍵是批量的獲取。
反爬蟲:使用技術手段防止爬蟲程式的方法
誤傷:反爬技術將普通用戶識別為爬蟲,從而限制其訪問,如果誤傷過高,反爬效果再好也不能使用(例如封ip,只會限制ip在某段時間內不能訪問)
成本:反爬蟲需要的人力和機器成本
攔截:成功攔截爬蟲,一般攔截率越高,誤傷率越高
反爬蟲1
爬蟲:對網站的數據感興趣,著手分析網路請求,用Scrapy寫爬蟲爬取網站數據
網站:後臺監控發現請求中的User-Agent都是python,直接限制訪問(不能封ip)
反爬蟲2
爬蟲:通過在請求頭中傳遞User-Agent參數模擬瀏覽器請求,可以用UA池
網站:後臺監控發現同一ip在某時間段內請求過於頻繁,直接限制訪問(不能封ip)
反爬蟲3
爬蟲:在原來的基礎上,再通過ip代理向網站發起請求,可以用代理池
網站:後臺監控發現ip發生變化,但某一時間段內的請求量過大,對伺服器造成過大壓力,網站中某些數據直接要求登錄才能訪問
反爬蟲4
爬蟲:註冊賬號,每次請求攜帶cookie或者token值
網站:健全賬號體系,用戶只能訪問好友信息,非好友信息不能訪問,或只能訪問部分信息
反爬蟲5
爬蟲:註冊多個賬號,多個賬號聯合爬取,設置程式,每個賬號每天固定添加好友,但是養號是個相對耗時的過程
網站:後臺監控發現請求過於頻繁,為避免伺服器壓力過大,進一步加劇ip訪問頻率限制
反爬蟲6
爬蟲:模擬人去請求,限制請求速度,讓代碼睡幾秒
網站:後臺監控到ip訪問時間段過長,例如一天24小時都在有規律地請求,彈出驗證碼
反爬蟲7
爬蟲:通過各種手段識別驗證碼(建議使用打碼平臺,充錢,自己去研究識別驗證碼太費時,時效性也太差)
網站:增加動態網站,數據通過js動態載入,增加網路分析複雜度,或者發現大量請求時只請求html,而不請求image和css以及js,亦或者直接返回假數據給爬蟲
反爬蟲8
爬蟲:通過正常請求去爬取數據,但有些數據看不到,數據是動態載入的,考慮發了ajax請求
網站:不在前端正常顯示
反爬蟲9
爬蟲:通過一些反爬手段去爬取數據,但得到的不是正常的數據,網站應該是做了某種手段的加密
網站:把內容進行加密
反爬蟲10
爬蟲:通過selenium和phantomjs(無界面瀏覽器)完全模擬瀏覽器操作,例如滑動驗證等
網站:......