中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python常見的反爬措施分享

發布時間:2021-09-10 11:40:06 來源:億速云 閱讀:183 作者:chen 欄目:編程語言

本篇內容介紹了“python常見的反爬措施分享”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!


  一、反爬技術Headers:


  從用戶的Headers進行反爬是最常見的反爬蟲策略。Headers(上一講中已經提及)是一種區分瀏覽器行為和機器行為中最簡單的方法,還有一些網站會對Referer(上級鏈接)進行檢測(機器行為不太可能通過鏈接跳轉實現)從而實現爬蟲。


  相應的解決措施:通過審查元素或者開發者工具獲取相應的Headers然后把相應的Headers傳輸給python的requests,這樣就能很好地繞過。


  二、反爬技術IP限制


  一些網站會根據你的IP地址訪問的頻率,次數進行反爬。也就是說如果你用單一的IP地址訪問頻率過高,那么服務器會在短時間內禁止這個IP訪問。


  解決措施:構造自己的IP代理池,然后每次訪問時隨機選擇代理(但一些IP地址不是非常穩定,需要經常檢查更新)。


  三、反爬技術UA限制


  UA是用戶訪問網站時候的瀏覽器標識,其反爬機制與ip限制類似。


  解決措施:構造自己的UA池,每次python做requests訪問時隨機掛上UA標識,更好地模擬瀏覽器行為。當然如果反爬對時間還有限制的話,可以在requests設置timeout最好是隨機休眠,這樣會更安全穩定,time.sleep()。


  四、反爬技術驗證碼反爬蟲或者模擬登陸


  驗證碼:這個辦法也是相當古老并且相當的有效果,如果一個爬蟲要解釋一個驗證碼中的內容,這在以前通過簡單的圖像識別是可以完成的,但是就現在來講,驗證碼的干擾線,噪點都很多,甚至還出現了人類都難以認識的驗證碼(~~~~~~~)。


  相應的解決措施:驗證碼識別的基本方法:截圖,二值化、中值濾波去噪、分割、緊縮重排(讓高矮統一)、字庫特征匹配識別。(python的PIL庫或者其他)模擬登陸(例如知乎等):用好pythonrequests中的session(下面幾行代碼實現了最簡單的163郵箱的登陸,其實原理是類似的~~)。


  import requests
  s =requests.session()
  login_data={"account":" ","password":" "}
  res=s.post("http://mail.163.com/",login_data)


  五、反爬技術Ajax動態加載


  網頁的不希望被爬蟲拿到的數據使用Ajax動態加載,這樣就為爬蟲造成了絕大的麻煩,如果一個爬蟲不具備js引擎,或者具備js引擎,但是沒有處理js返回的方案,或者是具備了js引擎,但是沒辦法讓站點顯示啟用腳本設置。基于這些情況,ajax動態加載反制爬蟲還是相當有效的。


  Ajax動態加載的工作原理是:從網頁的url加載網頁的源代碼之后,會在瀏覽器里執行JavaScript程序。這些程序會加載出更多的內容,并把這些內容傳輸到網頁中。這就是為什么有些網頁直接爬它的URL時卻沒有數據的原因。


  處理方法:若使用審查元素分析”請求“對應的鏈接(方法:右鍵→審查元素→Network→清空,點擊”加載更多“,出現對應的GET鏈接尋找Type為text/html的,點擊,查看get參數或者復制RequestURL),循環過程。如果“請求”之前有頁面,依據上一步的網址進行分析推導第1頁。以此類推,抓取抓Ajax地址的數據。對返回的json使用requests中的json進行解析,使用eval()轉成字典處理(上一講中的fiddler可以格式化輸出json數據。


  六、反爬技術cookie限制


  一次打開網頁會生成一個隨機cookie,如果再次打開網頁這個cookie不存在,那么再次設置,第三次打開仍然不存在,這就非常有可能是爬蟲在工作了。


  解決措施:在Headers掛上相應的cookie或者根據其方法進行構造(例如從中選取幾個字母進行構造)。如果過于復雜,可以考慮使用selenium模塊(可以完全模擬瀏覽器行為)。

“python常見的反爬措施分享”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英山县| 东乡族自治县| 金乡县| 红河县| 广平县| 虞城县| 双鸭山市| 兰坪| 金乡县| 奈曼旗| 弋阳县| 竹北市| 天台县| 留坝县| 香河县| 萝北县| 巩义市| 沁阳市| 禄丰县| 岳池县| 盈江县| 和静县| 寻甸| 佛山市| 揭阳市| 宁津县| 清流县| 土默特右旗| 招远市| 阿拉善盟| 尼木县| 万载县| 海淀区| 无棣县| 大城县| 南乐县| 丰原市| 渑池县| 盐边县| 南涧| 鸡西市|