用Python编写一个某网站的自动获取金币脚本

最近看到个特别全面源码分享网站,刚好有个项目是一直想做但是没有头绪的,就想下载学习一下。注册账号后,发现还需要若干金币。后来发现可以通过每隔一定时间发心情状态来获得金币,就打算写一个自动发心情状态的python脚本来收割金币。

一、思路分析

使用burp抓取一下提交的包,如下图所示:

因此我们的目的是写一个自动提交心情的python脚本,提交包中需要包含必要的cookie信息,隐藏的radom字符串,心情文本内容,和文件,经测试发现文件可为空。表单中只包含前两项就可以成功增加金币,这就更加省事了。

文末附有完整python代码,接下来我们看一下是怎么一步步写出来的。

二、具体实现第一步

首先先写读取页面的功能!这个之前也写过很多,都是搜索出一段代码来直接使用。然而这次找了几段代码代码应为python及库的版本问题都不太好调试。

就直接看requests库官方文档,官方文档才是最好的资料。

版本1代码

执行结果如下图所示,我们能够获得网站

此时获得的页面是未曾登陆的无法发表心情状态。

第二步

接下来我们先将cookie信息硬编码到代码中,来测试一下。

cookie信息可如下图所示从浏览器中获取.

版本2代码:

此时返回页面正常登陆

第三步

接下来我们提取需要提交表单的隐藏input随机字符串,同时选择当前首页的其他人的心情状态作为我们的文本内容。

解析html,当然是神库beautifulSoup4了,别无他想。分析需要提取的值在html页面的具体位置,查看官方文档选择合适的api方法,然后编写代码实现。

同样方法获得心情内容所在位置,进一步完善代码。

版本3代码

第四步骤

接下来我们来实现提交心情状态功能。

只需要将上一步骤提取的内容构造post提交就可以了。

版本4代码

第五步

上面的代码因为cookie的值是硬编码在脚本中,这样一旦session过期,后面将会跳转到未登录装填。这就需要我们重新去更新cookie对应的值,那么有没有方法可以解决这个问题呢?

当然是有的。看一下requests提供的session解决方案,如下图

因此可以使用session来改造代码,requests中的session将会自动保存相关的cookie信息,如此每次运行就可以自动使用账号及密码登陆。

版本5代码

第六步

上面的步骤完成后,我们可以执行一次自动提交心情状态的代码。我们想要做的每隔一定的时间间隔提交一条状态。因此还要添加上一个定时器,来自动执行这个过程。

最终完整代码如下,justForFun。

作者:青衫磊落

来自:https://bbs.ichunqiu.com/thread-35308-1-1.html

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180803A1VFAE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券