Python爬虫:盖楼抽奖还手动?自动的她不香吗?

Posted 一天一篇Python库

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫:盖楼抽奖还手动?自动的她不香吗?相关的知识,希望对你有一定的参考价值。

前言

目前对于Python来说,使用最多的功能肯定是Python爬虫。比如抢购茅台以及刷评论,盖楼等抽奖活动贴,都可以应用到爬虫的相关知识。

而学习Python爬虫,不仅可以增加自己的知识储备,丰富自己的知识库,而且还能帮助自己增加额外的收入。

所以,今天博主将通过某个盖楼活动贴,来实现自动评论盖楼抽奖功能。

点击进入下一篇博文

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

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

盖楼网站
比如这个网站,经常有不定时的盖楼活动推出,我们随便评论一条,通过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多字,恐怕再长阅读体验不是很好。所以全自动的盖楼刷评论抽奖内容将放到下一篇博文进行讲解。

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

以上是关于Python爬虫:盖楼抽奖还手动?自动的她不香吗?的主要内容,如果未能解决你的问题,请参考以下文章

开挂!!比水军还恶心的刷帖,用Python实现自动评论盖楼抽大奖

Python爬虫:Xpath获取关键标签,实现盖楼抽奖

Python爬虫:Xpath获取关键标签,实现盖楼抽奖

MyBatis她不香吗?为啥老外却喜欢Hibernate/Jpa?

还在手动创建POJO吗?代码一键生成它不香吗?

在校学Python接单兼职不香吗?