再見!itchat,再見!網頁版微信


今日推文說明

二條:你不知道的PyCharm命令行用法
三條:樸實無華,Python 練手100 例
web

↑ 關注 + 星標 ,後臺回覆【大禮包】送你Python自學大禮包正則表達式



有一個詞叫作「三月爬蟲」,指的是有些學生臨到畢業了,須要收集數據寫畢業論文,因而在網上隨便找了幾篇教程,學了點requests甚至是urllib和正則表達式的皮毛,就開始寫爬蟲瘋狂從網上爬數據。這些爬蟲幾乎沒有作任何隱藏本身的舉動,不換IP,不設置headers,不限制速度,極易被有反爬的網站封鎖,極易給沒反爬的小網站形成流量壓力。

瀏覽器

後來,他們又不知道看了哪篇文章,知道要使用代理IP,要修改UserAgent。因而,他們真的就只在headers設置UserAgent,其餘項一律不設置。你給他指出來,他還振振有詞:你看我這樣能爬到數據啊,headers裏面其餘項目沒有用。微信

事實真的是這樣嗎?網絡

咱們來作個實驗,首先使用Chrome訪問http://httpbin.org/headers 這個網站能夠顯示當前你的headers。運行效果以下圖所示:app

而後,再使用requests不設置headers請求這個URL,運行效果以下圖所示:機器學習

最後,咱們僅僅設置一個UserAgent看看效果:編輯器

能夠看出來,僅僅設置一個UserAgent,與用瀏覽器訪問的 Headers 仍是有不少不同的地方。缺了不少項。網站只須要檢測缺的這幾項,就能肯定你是用程序發起的請求仍是用瀏覽器發的請求。學習

說回微信網頁版的問題。不少人使用wxpy或者 itchat 這種第三方庫經過 Python 控制本身的微信號,實現不少自動化操做。但不久之後就反饋說本身被限制登陸網頁版微信了,覺得是否是本身的行爲被微信發現了,例如一秒鐘內發了幾十條消息,或者同時回覆了好幾我的的消息。大數據

但我要說的是,大家過高估本身了,微信要發現大家,根本就不用這麼麻煩。它直接檢查headers就能夠了。

咱們來看一下wxpy的源代碼中,涉及到網絡請求的地方:

wxpy是基於itchat二次開發的,登陸功能是經過 itchat 來實現的。咱們再來看看itchat裏面發起網絡請求的地方:

其中的 self.core.s就是一個 requests 的 Session,以下圖所示:

看到了嗎?這兩個庫,他們在headers裏面只放了UserAgent,其餘字段都沒有放。因此在你登陸的瞬間,微信就已經知道你這個帳號沒有用瀏覽器登陸了!

因此,那些用了wxpy或者itchat就被限制登陸網頁版微信的人,不要懷疑,大家就是被這兩個庫給害了。這兩個庫裏面涉及到網絡請求的相關代碼,水平一看就是一個學了兩三天爬蟲的人寫出來的代碼。

你用這兩個庫就是讓你的微信號去送死。

不只僅是這兩個庫,咱們再看看不少人使用的Python 彈幕包,更誇張,在獲取鬥魚直播信息的時候,直接用requests請求網址,連headers都沒有設置,以下圖所示:


這純粹就是送死行爲。

如今大網站的機器行爲對抗團隊通常會把檢測爬蟲與封禁爬蟲分開。由於反爬蟲策略多了之後,不可避免存在誤傷的狀況,爲了儘量下降誤傷率,檢查爬蟲時會對請求的可疑性進行打分,當你出現疑似爬蟲行爲時,給你的請求加上一些分數,某些行爲分數高,某些行爲分數低。當你總積分達到必定程度時,再調用封禁的流程。

因爲 HTTP是無狀態的,若是你要爬的網站不須要登陸,那麼也許你頻繁更換 IP 有用(阿布雲的代理池就是被這樣污染的)。

可是對於微信這種須要登陸的狀況,你的全部可疑行爲的積分都會直接關聯到你的這個帳號上。因而,一開始可能你用 wxpy 登陸網頁版微信沒問題,這個時候你的可疑性積分還不夠高,可能確實有一些老古董瀏覽器的 Headers 就是少了不少項?可是你已經在懷疑名單裏面了。一旦你又出現了其餘可疑行爲致使可疑性積分繼續增長,那麼當微信已經能夠100%確信你就是用的自動化程序登陸網頁版微信的時候,封禁你就是天然而然的事情了。


    

(完)


        
          
     
         
         
         
          
          
                   
          
     
         
           
             
        
            
            
            
             
             
                      
             
        
            
推薦閱讀

雷軍,扎克伯格,Linus 等巨佬的辦公桌

推薦兩個團隊技術號

        
          
     
         
         
         
          
          
                   
          
     
         
            
              
         
             
             
             
              
              
                       
              
         
             




Github研習社:
目前是由國內985博士,碩士組成的團體發起並運營,主要分享和研究業界開源項目,學習資源,程序設計,學術交流。 回覆就無套路送你一份自學大禮包。



機器學習研習社
目前是由國內985博士,碩士組成的團體發起並運營。主要分享和研究機器學習、深度學習、NLP 、Python,大數據等前沿知識、乾貨筆記和優質資源。 回覆就無套路送你一份機器學習大禮包。

            
              
         
             
             
             
              
              
                       
              
         
             

後臺回覆【大禮包】送你2TPython自學資料

好消息:Python學習交流羣,已經創建,猛戳連接加入

本文分享自微信公衆號 - Python綠色通道(Python_channel)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索