天天看點

用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這裡了:背景回複“抽屜”兩字,可以擷取代碼。如果覺得還不錯,記得給個star噢,感想小夥伴們的支援!