用Python模擬技巧帶你實現自動抽屜登錄&自動點贊

/1 前言/

嘿,各位小夥伴們晚上好呀,今天小編又給大家帶來乾貨內容啦,今天帶來的是,如何自動登錄抽屜,並且點贊!

  原計劃是不打算使用selenium的,但是因爲要涉及點贊,所以免不了登錄。但事實證明,我又被啪啪打臉了,抽屜的登錄是真的難,各種參數把我幹懵了。無賴之下,我還是撿起了selenium,難逃真香定律吶,哈哈哈。

  好了,廢話不多說,直接進入正題吧!

/2 準備工作/

  萬年不變的套裝...

  Chromedriver:瀏覽器驅動,可以理解爲一個沒有界面的chrome瀏覽器。

  Selenium:用於模擬人對瀏覽器進行點擊、輸出、拖拽等操作,就相當於是個人在使用瀏覽器,也常常用來應付反爬蟲措施。

/3 抽屜點贊機制/

我們都知道,要想點贊,就需要知道是誰點的,登錄以後需要等保存狀態,一般有cookie,seeeion,token三種形式,那麼抽屜的是怎麼玩的呢?我們來圖解一下,如下圖所示。

通過上圖,我們一目瞭然,能看出來,只要我們登錄了之後,拿到了cookie,以後就不用selenium啦!所以,我們這裏將登錄獲取cookie和點贊進行分離,分開進行,邏輯也十分的清晰,而且一點兒也不耽誤事情。

/4 登錄預熱/

  抽屜url:https://dig.chouti.com/,直接放這了。

一個熱榜資訊社區,大概長這個樣子,如下圖所示,內容還是挺不錯的。

 

在上圖我們可以看到右上方的登錄按鈕,在左側可以看到需要點讚的圖標以及點贊數,評論數和收藏數等等,接下來我們先進行第一步自動登錄。

/5 開始登錄/

點擊右上方的登錄按鈕,頁面將會進行跳轉,進入到一個登錄界面,如下圖所示。

 

彈出登錄模態對話框,接下來我們使用selenium來開始盤它了,直接上代碼,如下所示。

注意事項1:介於篇幅和排版原因,這裏只是給出了一個代碼截圖,完整代碼我在文末留了github鏈接,回頭可以直接去down即可。

因爲此登錄是模態對話框,所以用selenium是不能點擊登錄按鈕的,需要執行js代碼,如下圖所示。

 

Cookie是怎麼玩的呢,我他把寫在了本地,但是測試發現selenium獲取cookie不全,所以我們依然使用js獲取。

 

注意事項2抽屜如果登錄多了,可能會讓輸入滑塊驗證碼之類的,本文這部分並未有進行處理。

/6 自動登錄示例效果圖/

自動登錄的效果圖如下圖所示:

 

/7 開始自動點贊/

  在上面的工作中,我們已經成功的拿到登錄返回的cookie了,接下來我們就開始自動點贊,而且有了之前的基礎,下面的事情我們就好辦多了。

  我們首先需要看一下,點贊請求的是哪個接口。我們清空一下瀏覽器中的NetWork日誌,點擊第一個文章的贊按鈕,如下圖所示。

我們可以看到,這個接口發的是post請求,但是發送的是什麼數據呢?我們下滑繼續一探究竟。

 

可以看到在Form Data裏邊,有一個linkid:29213534,是一串長數字,這個是什麼呢?馬上揭曉!

使用瀏覽器與網頁的交互功能,我們點擊對應的文章,那麼很快我們就可以鎖定這個linkid,如下圖所示。

 

  相信大家肯定都看得出來,其實post的那一串數字其實就是文章ID。換句話說,我們只需要把這個ID都獲取到,放到post構造數據裏邊,程序一運行,就可以實現點贊啦!

/8 代碼實現/

下面是部分代碼截圖,完整代碼在文末,如下圖所示。

注:這裏只是測試了前10個文章。

/9 抽屜自動點贊效果圖/

爲了方便大家查看,我做了一個簡單的小動態圖給大家,詳情如下。

 

 

如果動圖看的不是很清晰的話,不用慌,小編已經把原圖放到github上了,大家可以去訪問看看,很清晰,如下圖所示。github鏈接在文末,歡迎大家來戳!

 

/10 抽屜自動點贊效果圖/

代碼詳情我已經上傳到github這裏了:https://github.com/cassieeric/python_crawler/tree/master/autoVote。如果覺得還不錯,記得給個star噢,感想小夥伴們的支持!

發佈了125 篇原創文章 · 獲贊 440 · 訪問量 119萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章