豆瓣機器人 自動加入/退出小組、自動在小組發帖/刪帖、自動回覆 Python實現代碼 豆瓣爬蟲

用Python實現了一個在豆瓣上 自動加入/退出小組、自動在小組發帖/刪帖、自動回覆 的小工具。

代碼請見github:https://github.com/echoTheLiar/DoubanAuto

主要實現原理闡述如下:

1. 要在豆瓣上自動完成針對小組的操作,首先需要模擬瀏覽器登錄,此處利用cookie攜帶登錄信息,如利用上述代碼,請在Chrome瀏覽器中右鍵檢查,將獲得的Cookie信息複製到代碼文件 config/doubanCookies.txt 下替換原有內容即可



2. 自動加入小組:發帖的前提是加入小組。加入小組利用代碼實現時,通過抓取相應的加入小組的鏈接,再利用get請求即可。我在示例代碼中演示瞭如何加入活躍的小組,可以修改代碼按自己意願調用;此處活躍小組是之前爬取到的豆瓣上成員超過10000的小組id,如需下載,請見http://download.csdn.net/download/doleria/10143962 ,沒有這個文件也不影響功能,註釋掉相關代碼行即可;

3. 自動發帖、回帖:手動在瀏覽器中進行發帖操作(前提:在已加入的小組裏),然後利用抓包程序(如fiddler)查看這一過程中POST或GET的具體參數,此處不再贅述;需要注意的是,有個ck參數,會隨着用戶變化而變化,代碼實現時在cookie中取),具體見 util/doubanutil.py 中的相關方法

4. 驗證碼識別:驗證碼識別模塊調用百度OCR接口,自測識別率不是很高,但基本能滿足要求。如要使用該功能,需要申請百度開發者賬號,不再贅述(後續考慮自己實現驗證碼識別,敬請期待~);在該模塊中,首先爬取發帖界面的html源碼,取出驗證碼的存儲地址,下載至本地 image/目錄下,由於驗證碼有可能重複,爲避免重複存儲驗證碼圖片,將圖片地址命名爲圖片文件的md5值。這樣,每次下載圖片後,計算文件的md5值,如果已存在,則不保存至本地。

5. 對了,我在代碼裏用到了函數式編程的設計模式(filter模式),主要體現在group文件夾下的join.py quit.py remove.py三個文件當中,因爲加入小組、退出小組及移除帖子都需要獲取相應的鏈接,在此處有共性也有差異。所以做了抽象,具體參見代碼實現。

歡迎批評指正,提出意見。

===============================================

代碼請見github:https://github.com/echoTheLiar/DoubanAuto

===============================================



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章