当前位置 博文首页 > 还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)

    还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)

    作者:一天一篇Python库 时间:2021-08-10 18:37

    获取评论贴的请求头与表单数据

    下一篇在这里

    这里,我们随便选取一个网站,获取该贴评论后的请求头,表单数据以及评论贴链接。(因为涉及敏感信息,自己看图片是哪个网址)

    盖楼网站

    比如这个网站,经常有不定时的盖楼活动推出,我们随便评论一条,通过chrome F12功能,获取其请求头与表单数据。

    在这里插入图片描述

    可以看到其右侧的表单数据(评论参数)有:

    message:盖楼的内容,一般来说这个内容可以提供一个文档随机选择评论,可以规避自动盖楼导致评论一模一样。

    posttime:标识数据,一般具有唯一性,确定是否是人为操作。(各个网站标识数据各不相同,但原理基本一样)

    formhash:标识数据,一般具有唯一性,确定是否是人为操作。(各个网站标识数据各不相同,但原理基本一样)

    usesig:默认数据,一直为1

    subject:空,博主测试多个评论,这个表单值一直都是空,可以不设置,也可以设置为空。

    所以,在刷评论盖楼的时候,我们需要通过一个字典将form Data表单数据存储到里面后,进行post请求。代码如下:

    data = {
        "formhash": "bfb0d6b5e6873b69ccfc7e5b7c69cc8bb0de2794809d7d5fdf2a55a46983fb17",
        "message": "我觉得这款电热水壶的颜值超高,肯定是我的开水好助手",#修改评论内容只需要改这段字符串即可
        "usesig": "1",
        "posttime": "1622089322",
        "subject":"",
    }
    

    因为上面只是表单数据,但每个网站都是需要先登录后在评论的,所以我们需要获取评论时的cookie数据,来证明是哪个账号在评论盖楼。评论请求头截图如下:

    请求头

    也就是设置post评论请求的请求头headers,具体代码如下:

    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
        "Cookie": "上面的cookie字符串",
    }
    

    一般来说,我们至少需要设置User-Agent以及Cookie。其中User-Agent会伪装你是从浏览器访问的,而Cookie是证明你是哪个账号,也就是登录用户身份的标识。post请求链接如下图:

    在这里插入图片描述

    自动盖楼评论

    有了这2个数据,在加上请求的链接,即可完成Python脚本刷评论盖楼的目的,完整的的代码如下所示:

    import time
    import requests
    
    url = "https://club.hihonor.com/cn/forum.php?mod=post&action=reply&fid=154&tid=21089001&extra=page%3D1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1"
    data = {
        "formhash": "bfb0d6b5e6873b69ccfc7e5b7c69cc8bb0de2794809d7d5fdf2a55a46983fb17",
        "message": "我觉得这款电热水壶的颜值超高,肯定是我的开水好助手",
        "usesig": "1",
        "posttime": "1622089322",
        "subject":"",
    }
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
        "Cookie": "你的Cookie字符串数据",
    }
    
    while True:
        time.sleep(0.5)
        res = requests.post(url=url, data=data, headers=headers)
        print(res.text)
    

    运行之后,效果如下:

    评论成功
    盖楼评论数据

    这里每隔0.5秒评论一次。不过,该盖楼刷评论脚本有一个非常明显的缺陷,就是每次登录程序都需要首先评论后获取这些数据在刷,这就不是全自动的了,虽然比自动的好点。(而且Cookie登录状态并不是永久的,各个网站Cookie时效各不相同)

    因为文章的内容已经达到3000多字,恐怕再长阅读体验不是很好。所以全自动的盖楼刷评论抽奖内容将放到下一篇博文进行讲解。

    但是这是基础的原理,后面全自动的盖楼基于这篇内容。

    jsjbwy