Python爬蟲入門教程 54-100 博客園等博客網站自動評論器

爬蟲背景

爬蟲最核心的問題就是解決重複操作,當一件事情可以重複的進行的時候,就可以用爬蟲來解決這個問題,今天要實現的一個基本需求是完成“博客園“ 博客的自動評論,其實原理是非常簡單的,提煉一下需求

基本需求

  1. 登錄博客園<不實現,登錄單獨編寫博客>
  2. 調用評論接口
  3. 返回請求結果

確定流程之後,基本就是找突破口的環節了

實際的去評論一下,然後不管你用什麼抓包工具都可以,只要抓取到你想要的數據,即可

評論API如下

Request URL: https://www.cnblogs.com/mvc/PostComment/Add.aspx
Request Method: POST

POST URL 有了,下面就是參數的問題

我隨便找了一個請求的參數

{"blogApp":"wuxiaobin","postId":10510784,"body":"繼續研究","parentCommentId":0}

分析參數

blogApp 是博主的用戶暱稱
postid 是博文的ID
body 評論主體
parentCommentid 看參數命名知道應該是指的回覆的那條ID

分析到這裏,你就可以開始模擬請求了,一般情況下是不成功的,因爲我們沒有登錄,不過,代碼先寫起來

觀察請求頭參數

請求頭基本包含一些用戶信息,必備部分如下,剩下的就是cookies部分了

origin: https://www.cnblogs.com
referer: https://www.cnblogs.com/
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) 
x-requested-with: XMLHttpRequest

編寫代碼

import requests
import json

class CnBlogs(object):

    def __init__(self):
        self._url = "https://www.cnblogs.com/mvc/PostComment/Add.aspx"


    def run(self):
        params = {
            "blogApp":"wuxiaobin",  # 博主ID
            "postId":10510784, # 評論博文的ID
            "body":"繼續研究b",  # 評論內容
            "parentCommentId":0}
        headers = {
            "origin": "https://www.cnblogs.com",
            "referer": "https://www.cnblogs.com/",
            "user-agent": "瀏覽器UA",
            "x-requested-with": "XMLHttpRequest",
            "cookie":".CNBlogsCookie=重要參數;"
        }
        res = requests.post("https://www.cnblogs.com/mvc/PostComment/Add.aspx",data=params,headers=headers)
        print(json.loads(res.text))


if __name__ == '__main__':
    cnblogs = CnBlogs()
    cnblogs.run()

重要提示

經過我的測試,發現判斷博客園用戶是否登錄,關鍵的是cookie 這個在我之前的博客有涉及,2種寫法,重點是你如何去獲取,一般情況下,手動獲取即可

登錄採用的是人機識別驗證,這個我單獨寫一篇博文去研究,目前階段,你手動獲取即可

博客園驗證碼
其他的參數,在加載博客的時候,就可以用網頁解析相關的知識解析出來,沒有難度

如何你想要做成全自動化的,也可以,只需要控制發帖時間隨機,發帖內容隨機即可,加上一個時間戳也是一個非常不錯的解決方案

發帖成功

測試中一定要解析返回的JSON字符串,確定裏面的成功和異常信息

{
  'IsSuccess': True,
  'Message': '<div class="comment_my_posted">... ...</div>',
  'Duration': '171'
}

博客園自動評價Over

所有網站的評論原理是相通的,你可以自行研究掘金,CSDN,簡書等各種文章類平臺,自動評論需要的是大量的用戶,動態的IP,其餘都不是問題~ 本文章僅供學習,切勿用於惡意用途。

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