/1 前言/python
嘿,各位小夥伴們晚上好呀,今天小編又給你們帶來乾貨內容啦,今天帶來的是,如何自動登陸抽屜,而且點贊!git
原計劃是不打算使用selenium的,可是由於要涉及點贊,因此免不了登陸。但事實證實,我又被啪啪打臉了,抽屜的登陸是真的難,各類參數把我幹懵了。無賴之下,我仍是撿起了selenium,難逃真香定律吶,哈哈哈。github
好了,廢話很少說,直接進入正題吧!chrome
萬年不變的套裝...瀏覽器
Chromedriver:瀏覽器驅動,能夠理解爲一個沒有界面的chrome瀏覽器。cookie
Selenium:用於模擬人對瀏覽器進行點擊、輸出、拖拽等操做,就至關因而我的在使用瀏覽器,也經常用來應付反爬蟲措施。app
咱們都知道,要想點贊,就須要知道是誰點的,登陸之後須要等保存狀態,通常有cookie,seeeion,token三種形式,那麼抽屜的是怎麼玩的呢?咱們來圖解一下,以下圖所示。ide
經過上圖,咱們一目瞭然,能看出來,只要咱們登陸了以後,拿到了cookie,之後就不用selenium啦!因此,咱們這裏將登陸獲取cookie和點贊進行分離,分開進行,邏輯也十分的清晰,並且一點兒也不耽誤事情。post
抽屜url:https://dig.chouti.com/,直接放這了。測試
一個熱榜資訊社區,大概長這個樣子,以下圖所示,內容仍是挺不錯的。
在上圖咱們能夠看到右上方的登陸按鈕,在左側能夠看到須要點讚的圖標以及點贊數,評論數和收藏數等等,接下來咱們先進行第一步自動登陸。
點擊右上方的登陸按鈕,頁面將會進行跳轉,進入到一個登陸界面,以下圖所示。
彈出登陸模態對話框,接下來咱們使用selenium來開始盤它了,直接上代碼,以下所示。
注意事項1:介於篇幅和排版緣由,這裏只是給出了一個代碼截圖,完整代碼我在文末留了github連接,回頭能夠直接去down便可。
由於此登陸是模態對話框,因此用selenium是不能點擊登陸按鈕的,須要執行js代碼,以下圖所示。
Cookie是怎麼玩的呢,我他把寫在了本地,可是測試發現selenium獲取cookie不全,因此咱們依然使用js獲取。
注意事項2:抽屜若是登陸多了,可能會讓輸入滑塊驗證碼之類的,本文這部分並未有進行處理。
自動登陸的效果圖以下圖所示:
/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噢,感想小夥伴們的支持!