网易星球自动领取黑钻脚本
前言
区块链最近很火,国内各大公司都在寻机会踏入其中。网易出了一个星球(原本猫的项目挂掉了)区块链,每隔一段时间可以领取一些黑钻。当时还抓包看了一下接口的情况,刷了一下接口接发现有漏洞,自己的黑钻增长太快了,远远超出第一名。想到实名制,还是速度打了个电话给网易客服通知他们联系技术。网易似乎没有反馈,直到一个小时后排行榜更新,我上了第一名他们才下架排行榜功能,然后把我的账号注销。经过投诉后,技术电话回电说帮我恢复账号,事情算是告一段落了。黑钻可以兑换一些服务或者实体物品在未来。还是希望固定打卡的事情,让机器来做。
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小时在线的肉鸡比较心安吧。
给网易做了一把测试后,短暂的第一名🤣。现在是本分领取着。
WechatIMG75.jpeg
与别人一样的申明
这个脚本仅当学习用。GitHub地址