Loading... # 抓取网站签到接口 <div class='handsome_aplayer player-content' data-preload="auto" data-autoplay="false" data-listMaxHeight="340px" data-order="list"> <div class="handsomePlayer-tip-loading"><span></span> <span></span> <span></span> <span></span><span></span></div><div class="handsome_aplayer_music" data-id="003jsvrU04EVit" data-server="tencent" data-type="song" data-auth="54539fd1c9cc1657fa33d768b498bde3"></div> </div> 这里以子比主题为例,实现自动签到 由于我要展示自动签到结果,这里现在子比官方的演示站获取接口,随后去另外一个网站来实践 ![子比demo站点](https://bucket.iczrx.cn/2024/06/01/665b0ed8abd24.jpg) 打开F12,找到网络这一栏 ![打开开发者工具](https://bucket.iczrx.cn/2024/06/01/665b0f58b2947.jpg) 随后点击签到,成功抓取到了这个接口 打开这个请求看看是如何发起的 ![成功抓取到](https://bucket.iczrx.cn/2024/06/01/665b0f8ca3344.jpg) # 分析 ![详情](https://bucket.iczrx.cn/2024/06/01/665b0fdb8e888.jpg) 这里看到了接口地址,复制一下这个地址 并且看到请求方法是POST 随后看一下负载里面发送的是什么数据 ![Post发送的数据](https://bucket.iczrx.cn/2024/06/01/665b103e57ea2.jpg) 可以看到发送的是一个名为“action”,内容是“user_checkin”的数据 随后在标头离获取cookie,保存下来 ![获取到的cookie](https://bucket.iczrx.cn/2024/06/01/665b114d04d13.jpg) 我们直接上php,用curl请求一下 ```php <?php // 初始化一个 cURL 句柄 $ch = curl_init(); // 设置 URL 和 POST 数据 $url = '请求url'; $post_data = array( 'action' => 'user_checkin' ); // 将 POST 数据编码为字符串 $post_fields = http_build_query($post_data); // 设置 cURL 选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置请求头,包含 Cookie $headers = array( 'Cookie: 这里填写获取到的cookie', ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 执行请求并获取响应 $response = curl_exec($ch); // 检查是否有错误发生 if(curl_errno($ch)){ $error_msg = curl_error($ch); echo "cURL Error: " . $error_msg; } // 关闭 cURL 句柄 curl_close($ch); // 处理响应数据 $data = json_decode($response,true); print_r($data); ?> ``` 在这里php部分就完成了 打开青龙面板 创建一个node.js的脚本 ```js // 使用 axios 库 const axios = require('axios'); async function visitUrlAndPrintResponse(url) { try { const response = await axios.get(url); console.log(`成功访问 ${url},状态码:${response.status}`); console.log('返回的信息:'); console.log(response.data); // 打印返回的数据 } catch (error) { console.error(`访问 ${url} 失败:`, error); } } // 替换成你要访问的 URL const targetUrl = '填写刚刚编写的php文件的url'; // 调用函数访问 URL visitUrlAndPrintResponse(targetUrl); ``` 这里就是自动访问的脚本 脚本创建完成之后还需要去添加关联这个任务 去定时任务里面新建一个任务 ![新建任务](https://bucket.iczrx.cn/2024/06/01/665b1263f322a.jpg) 名称随便写 脚本那栏里填写“task 刚才创建的脚本文件名称“ 定时规则可以填写”0 8 * * *“ 意思是每天八点自动执行这个脚本 保存 随后点击一下运行,再查看一下日志 ![日志详情](https://bucket.iczrx.cn/2024/06/01/665b132421f52.jpg) 成功!这样就可以每天自动签到了 子比主题的cookie大概是一个星期失效,还是需要定期去改一下cookie 最后修改:2024 年 08 月 26 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 如果觉得我的文章对你有用,请随意赞赏
6 条评论
这个除了青龙 宝塔后台哪个自动定时任务可以吗(╯‵□′)╯︵┴─┴
可以的
在设置的时候出现了代码错误 好像在这里也说不明白的
不错不错,就等cookie 更新获取的问题解决就完美
再继续研究一下 如何定期更新cookie 吧 这样就省心了
没错的