只要十分鐘,用Python實(shí)現(xiàn)自動(dòng)化水軍評論
玩csdn博客一個(gè)多月了,逐漸發(fā)現(xiàn)了一些有意思的事,經(jīng)常會有人用相同的評論處處刷,不知道是為了加沒什么用的積分,仍是樸實(shí)為了表達(dá)樓主好人。那么問題來了,這種無聊的事情當(dāng)然最好能夠自動(dòng)化咯,自己也來試了一把,純屬娛樂。
登陸
要評論當(dāng)然要能夠先進(jìn)行登陸,采用?requests?庫進(jìn)行處理,嘗試能否看到自己的消息列表:
結(jié)果跳轉(zhuǎn)到登陸界面,好的那看一下登陸界面是怎么登陸的,找到表單:
發(fā)現(xiàn)還有一些隱藏的參數(shù),如lt、excution等,好心的程序猿還寫明了不能為什么不能直接認(rèn)證的原因:缺少流水號,那就多訪問一次來獲取流水號好了,用?BeautifulSoup?來分析頁面內(nèi)容抓取流水號,同時(shí)因?yàn)橐绮煌挠騺磉M(jìn)行操作,所以引入session:
好了,現(xiàn)在能夠得到我的消息信息了,說明已經(jīng)成功解決登陸問題,那么自動(dòng)化水軍評論應(yīng)該就近在眼前了。
自動(dòng)評論
這次學(xué)乖了,隨便找了篇文章直接查看評論框form:
在上面登陸代碼的基礎(chǔ)上進(jìn)行評論的提交:
結(jié)果返回了?{"result":0,"content":"評論內(nèi)容沒有填寫!","callback":null,"data":null}
?這樣的結(jié)果。有點(diǎn)意思,應(yīng)該是在js中對參數(shù)進(jìn)行了處理。那就把js拉出來看看,網(wǎng)頁里搜了一下js文件,有個(gè)?comment.js?,就是它了。在上面的form中可以看到提交時(shí)調(diào)用了subform方法,查看方法如下:
可以清楚的看到最后POST提交的數(shù)據(jù)?data
?改變了參數(shù)的名字,還有幾個(gè)其他的參數(shù)通過看js文件可以看到不是空的就是定死的,就不用管他了。同時(shí)發(fā)現(xiàn)上的?"comment_usrId"
?也是給死的?那就只要comment一個(gè)變量就搞定了。
看一下效果:
自動(dòng)化
當(dāng)然上面最終的參數(shù)傳遞也可以自己手動(dòng)評論并用抓包軟件抓取,不過通過查看?commetn.js
?文件也給我的自動(dòng)化評論提供了方向,其中有一個(gè)?load_comment_form()
?方法,是用來加載comment-form的,它給出了action的定義:
action="/' + username + '/comment/submit?id=' + fileName + '"
寫的很明白了,我只要抓取到頁面的作者名和文章的編號就可以盡情的水評論了,隨便選個(gè)抓取文章的入口,如最新博客入口?http://blog.csdn.net/?ref=toolbar_logo?,用BeautifulSoup抓取url并解析取到其中的username和filename來構(gòu)成action并提價(jià)評論。
運(yùn)行腳本試一下效果:
打開評論管理看一下:
自動(dòng)化評論成功。
寫在最后
寫這篇文章只是為了證明一下自己的想法,不是用來也不希望有人用來惡意刷評論。