2020-06-22 19:41:10
围观(5042)
近几年越来越多羊毛党, 他们经常去找一些优惠折扣相关的活动并参与进去获得一些利益, 甚至更有白嫖(不花任何成本 除了时间).
博主发现了两个经常发布一些羊毛信息的网站:
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统计多用户订单数量及价格