距离上一篇年终总结文章已经3个多月了。年终总结,写了用脚本自动挤羊毛的题目。有很多评论的朋友比较感兴趣。那么,今天我就给大家详细介绍一下如何让科技创造价值(羊毛要薅羊毛)。本文没有任何技术难点,即使是技术小白也能轻松上手。为了留住用户,增加日活和月活,手机上的各种APP基本都会推出签到送礼等活动。接下来我就以我之前经常使用的叮咚购物APP为例,一步步教大家走向羊毛的光明之路。准备工作抓包工具(如charles)Node环境腾讯云账号抓包如何实现手机请求的抓包,我在这篇文章中介绍过charles抓包,不知道的朋友可以先看这篇文章文章,本文不做过多介绍。配置好代理之后,接下来就是关键环节了。要分析请求url和参数,首先我们需要找到一个动作对应的实际请求url。以叮咚买菜的签到功能为例,点击签到,你会抓到很多请求,从名字就能一眼看出我们要的是哪个url。从上图中可以看到请求的url、header和返回的response。有了这些东西,我们就可以开始写程序了。有许多用于编写特定代码以在节点端发送ajax请求的库。这里我们选择熟悉的axios。首先,让我们构造头部:constSIGN_IN_HEADER={"Accept":"*/*","Accept-Encoding":"gzip,deflate,br","Accept-Language":"zh-cn","Connection":"keep-alive","Content-Type":"application/x-www-form-urlencoded","ddmc-api-version":"9.7.3","ddmc-build-version":"9.48.1","ddmc-app-client-id":"13","ddmc-station-id":"5f1378ce93e0310001d3609e","origin":"https://activity.m.ddxq.mobi","Referer":"https://activity.m.ddxq.mobi/","Cookie":'xxxxxxxxxxxxxxx',"User-Agent":'Mozilla/5.0(iPhone;CPUiPhoneOS14_6likeMacOSX)AppleWebKit/605.1.15(KHTML,likeGecko)Mobile/15E148xzone/9.48.1station_id/5f1378ce93e0310001d3609e'}接下来是表单提交的数据信息:constPOST_DATA={"api_version":9.1,"station_id":"5f1378ce93e0310001d3609e","latitude":"40.050802","longitude":"116.413449"}有了header和data,就可以发送请求constSIGN_IN_URL='https://sunquan.api.ddxq.mobi/api/v2/user/signin/';axios.post(SIGN_IN_URL,{data:POST_DATA},{headers:SIGN_IN_HEADER}).then(res=>{console.log(res.data,'success');}).catch(err=>{console.log(err,'error');});运行上面的代码,在控制台打印出如下信息:可以看到,和我们上面截取的截图中返回的信息是一致的,大功告成,经过上面的步骤,就可以使用程序来解决签到问题了,在叮咚购物中还有一些其他的任务,比如小养鱼游戏,日常任务喂养可以换草鱼,目前已经白嫖了好几款,具体实现任务步骤大同小异,这里不再过多介绍。程序需要每天手动运行。,需要人的参与。我们怎能满足于这种追求呢?程序长大了,要学会自己运行。下面就请腾讯云函数登场吧。腾讯云函数自动执行腾讯云函数官方地址在这里。进入新功能后,选择功能服务->您可以手动选择离您较近的区域->新建。然后选择从头开始,可以给个标识性的名字,比如我这里叫dingdong,然后运行环境选择node12.16,不知道高版本的node有没有bug.好像异步请求没有发送,日志里也看不到打印的信息(折腾了半天,明明可以在本地做,就是不能部署)。功能代码提交方式选择本地上传文件夹,执行方式不用修改。执行方法表示调用云函数时需要在哪个文件中执行哪个函数。这里index.main_handler中的index表示执行的入口文件为index.js,main_handler表示执行的入口函数为main_handler。因此需要在本地根目录下创建一个index.js文件。入口index.js文件:'usestrict';exports.main_handler=async(event,context)=>{//需要添加这个来解决热启动问题deleterequire.cache[require.resolve('./src/sign.js')];require('./src/sign.js');};然后上传整个文件夹。接下来的高级配置和触发器配置不用管,直接点击Create生成云函数即可。部署进入功能管理->功能代码,可以看到我们刚刚上传的文件夹的所有内容(10M以上的新云功能内容只显示入口文件)。点击Deploy,我们的代码就部署到云服务器上了。点击测试进行在线测试调试,在日志查询中可以看到打印的信息。记下计时器配置以配置计时器。入口在功能管理中的触发器管理中。进入后选择创建触发器。触发周期有几个设定值。如果不喜欢,可以选择自定义触发周期。Cron表达式的设置请参考这里。一共有7个字段,分别代表秒、分、时、日、月、周、年。图中显示的意思是每天8点13分14秒自动触发一次。如果着急测试,可以新建一个触发器,选择每分钟执行一次,这样不用等待就可以看到效果。不过记得考完关掉这个定时器,我的钱就这么浪费了。那你基本不用再操心了,云函数会在设定的时间自动执行。我们需要做的是偶尔回来看看。如果今天的任务没有执行成功,大概率是cookie过期了。只需捕获数据包并获取cookie来替换它。好了,拉毛教程到此结束。您可以查看您经常使用的应用程序和网站,并在您无事可做时摆弄它们。建议薅羊毛不易,大家珍惜珍惜,说不定哪天平台改规则或者把你关进小黑屋,不是我的错。
