2020-06-22 19:41:10
围观(4172)
近几年越来越多羊毛党, 他们经常去找一些优惠折扣相关的活动并参与进去获得一些利益, 甚至更有白嫖(不花任何成本 除了时间).
博主发现了两个经常发布一些羊毛信息的网站:
jike.info
yangmaoribao.com
打开这两个网站, 可以看到风格和布局几乎一致, 可以猜测是同一个程序, 当然使用什么程序并不是重点, 如果擅长使用 "开发者工具" 也就是 F12 , 点左上角的最新, 可以看到请求了一个这样的接口:
仔细看接口返回的数据, 还能看到直接返回了文章信息.
接着使用 PostMan 可以发现直接就能正常请求.
同样的操作, 再看看 yangmaoribao.com 的:
返回的数据结构都是一样的, 所以可以利用这两个网站进行开发一个羊毛信息提醒.
博主马上花了十分钟写了这样的代码:
<?php $url = 'https://jike.info/api/recent?_='; $lst_data = json_decode(file_get_contents($url), true)['topics']; // jike.info $url = 'https://yangmaoribao.com/api/recent?_='; $lst_datas = json_decode(file_get_contents($url), true)['topics']; // 羊毛日报 $lst_data = array_merge($lst_data, $lst_datas); if (!$lst_data) exit('error'); $html = ''; $one_hour_ago = (time() - 3600) * 1000; foreach ($lst_data as $row_data) { if ($row_data['timestamp'] > $one_hour_ago) { $post_time = date('Y-m-d H:i:s', $row_data['timestamp'] / 1000); $url = "https://jike.info/topic/{$row_data['slug']}"; if (mb_strpos($row_data['user']['picture'], 'yangmaoribao') !== false) { $url = "https://yangmaoribao.com/topic/{$row_data['slug']}"; } $html .= "{$row_data['title']} - {$post_time} <br> <a href='{$url}' target='_blank'>直达链接</a> <br><br>"; } } if (empty($html)) exit('error'); echo $html;
虽然可以拿到了 标题 + 发布时间 + 链接. 但是还没做到提醒.
提醒方式其实不多, 无非就是邮件 / 短信 / 微信.
根据朋友的推荐, 发现了这个微信推送工具:
wxpusher.zjiecode.com/docs
直接看文档这个开始:
http://wxpusher.zjiecode.com/docs/#/?id=%e6%b3%a8%e5%86%8c%e5%b9%b6%e4%b8%94%e5%88%9b%e5%bb%ba%e5%ba%94%e7%94%a8
在他的后台创建应用后可以拿到这样的一串 Token:
需要关注一下自己创建的应用, 点关注后弹窗, 会有一个二维码, 扫码关注即可.
继续看文档这个:
http://wxpusher.zjiecode.com/docs/#/?id=%e5%8f%91%e9%80%81%e6%b6%88%e6%81%af-1
就能知道怎么请求接口进行推送了.
为了简单点, 直接调用接口的 GET 请求, 就不使用 POST 的接口了(博主懒).
所以直接上最后的代码:
<?php $url = 'https://jike.info/api/recent?_='; $lst_data = json_decode(file_get_contents($url), true)['topics']; // jike.info $url = 'https://yangmaoribao.com/api/recent?_='; $lst_datas = json_decode(file_get_contents($url), true)['topics']; // 羊毛日报 $lst_data = array_merge($lst_data, $lst_datas); if (!$lst_data) exit('接口错误'); $html = ''; $one_hour_ago = (time() - 3600) * 1000; foreach ($lst_data as $row_data) { if ($row_data['timestamp'] > $one_hour_ago) { $post_time = date('Y-m-d H:i:s', $row_data['timestamp'] / 1000); $url = "https://jike.info/topic/{$row_data['slug']}"; if (mb_strpos($row_data['user']['picture'], 'yangmaoribao') !== false) { $url = "https://yangmaoribao.com/topic/{$row_data['slug']}"; } $html .= "{$row_data['title']} - {$post_time} <br> <a href='{$url}' target='_blank'>直达链接</a> <br><br>"; } } $html = urlencode($html); if (empty($html)) exit('没有可以推送的'); $url = "http://wxpusher.zjiecode.com/api/send/message/?appToken=你的apptoken&content={$html}&uid=你的uid&url=http%3a%2f%2fwxpusher.zjiecode.com"; $result = file_get_contents($url); var_dump($result);
注意, 以上代码需要将你的 apptoken 之类的信息配置到 $url 变量.
然后请求这个 PHP 即可.
请求之后你会在公众号接收到这样的消息:
点击查看完整消息后:
可以放到宝塔面板去跑:
任务类型可以选 Shell 执行 PHP 的命令行模式 (PHP CLI).
也可以将 PHP 文件放在一个可访问的网站目录, 然后执行 访问 URL 类型的定时任务.
最好设置为一个小时提醒一次, 如果想要设置两个小时, 请将上面代码中的 3600 改成 7200.
本文地址 : bubaijun.com/page.php?id=191
版权声明 : 未经允许禁止转载!
上一篇文章: Windows10观看无广告的芒果TV
下一篇文章: SQL统计多用户订单数量及价格