网易星球自动领取黑钻脚本

2018-02-11  本文已影响1697人  Cass__

前言

区块链最近很火,国内各大公司都在寻机会踏入其中。网易出了一个星球(原本猫的项目挂掉了)区块链,每隔一段时间可以领取一些黑钻。当时还抓包看了一下接口的情况,刷了一下接口接发现有漏洞,自己的黑钻增长太快了,远远超出第一名。想到实名制,还是速度打了个电话给网易客服通知他们联系技术。网易似乎没有反馈,直到一个小时后排行榜更新,我上了第一名他们才下架排行榜功能,然后把我的账号注销。经过投诉后,技术电话回电说帮我恢复账号,事情算是告一段落了。黑钻可以兑换一些服务或者实体物品在未来。还是希望固定打卡的事情,让机器来做。

Usage

1、运行环境

Python3

2、设置

cookies = {
    'NTES_YD_SESS': '自己对应的cookie信息',
    '_ga': '自己对应的cookie信息',
    '_gat': '自己对应的cookie信息',
    'STAREIG': '自己对应的cookie信息',
}

需要修改脚本中cookies信息,以保证登录态。Cookie信息可以通过抓包进行获取。打开星球App,通过HTTPS抓包后,找一下星球的请求查看一下Header信息。推荐一个在线小工具Convert curl syntax to Python, Node.js, PHP
复制一下Curl Request就可以到这里转换成Python对应请求代码。
设置好以后,运行一下脚本便可自动收集一次。

3、定时运行脚本服务

可以购买一个ECS,设置一下Crontab定时任务。这样就让服务器挂着领取了。

*/40 *  * * *   root    python3 /root/user/cass/python_script

这是我设置的每隔40分钟进行运行脚本一次。黑钻大概1个小时刷新一次,这里设置建议大于30分钟,不要请求接口太频繁。

4、Cookie过期问题

一般登录态会有一个过期时间,过期后该登录就失效了。当前没有添加Cookie失效的报警方案。可以每隔几天检查一下是否运行正常,如果报错了可以重新抓包手机App的请求更新一下Cookie。

代码

import requests
import json

cookies = {
    'NTES_YD_SESS': 'Your cookies info',
    '_ga': 'Your cookies info',
    '_gat': 'Your cookies info',
    'STAREIG': 'Your cookies info',
}

headers = {
    'Host': 'star.8.163.com',
    'Origin': 'https://star.8.163.com',
    'Accept': 'application/json, text/plain, */*',
    'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_2 like Mac OS X) AppleWebKit/604.3.5 (KHTML, like Gecko) Mobile/15B202star_client_1.0.0',
    'Referer': 'https://star.8.163.com/m',
    'Accept-Language': 'zh-cn',
    'X-Requested-With': 'XMLHttpRequest',
}

# 请求领取coin接口
def collectCoins(coinId):
    headers = {
        'Host': 'star.8.163.com',
        'Accept': 'application/json, text/plain, */*',
        'X-Requested-With': 'XMLHttpRequest',
        'Accept-Language': 'zh-cn',
        'Cache-Control': 'max-age=0',
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://star.8.163.com',
        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_2 like Mac OS X) AppleWebKit/604.3.5 (KHTML, like Gecko) Mobile/15B202star_client_1.0.0',
        'Referer': 'https://star.8.163.com/m',
    }

    data = '{"id":%s}' %coinId
    response = requests.post('https://star.8.163.com/api/starUserCoin/collectUserCoin', headers=headers, cookies=cookies, data=data)
    print(response.text)
    print(data)


# 1、请求首页数据,检查是否有coin可以收集。有则将coin保存到列表容器
response = requests.post('https://star.8.163.com/api/home/index', headers=headers, cookies=cookies)
jsonData = json.loads(response.text)
collectCoinsList = jsonData['data']['collectCoins']
print(collectCoinsList)
if len(collectCoinsList) == 0:
    print('当前没有黑钻可以领取...')
else:
    # 2、检查coin列表容器是否有值,遍历请求领取coin接口
    for collectCoinsItem in collectCoinsList:
        print(collectCoinsItem)
        collectCoins(collectCoinsItem['id'])

碎碎念

第一次买了阿里的ECS,和2个大学同学一起,想着通过这种方式提高学学习氛围。以前用着免费的ECS,限制多多,注册流程也麻烦。凭着在Blue Pathway实习自学的一些服务器操作技能,算是把ECS环境配置了一下,脚本跑起来了。以前是希望有个肉鸡帮你执行一些东西,现在能有24小时在线的肉鸡比较心安吧。
给网易做了一把测试后,短暂的第一名🤣。现在是本分领取着。

WechatIMG65.jpeg
WechatIMG75.jpeg

与别人一样的申明

这个脚本仅当学习用。GitHub地址

上一篇下一篇

猜你喜欢

热点阅读