我想写一个脚本来记录关闭 SO 上的投票审核队列(目前约为 95.5k),每小时只轮询几次,所以我可以绘制一个总体趋势。我知道我要做什么来解析,IE给出 HTTP 响应的以下部分,
<div class="dashboard-num" title="95,508">95.5k</div>
我会应用正则表达式
<div\s+class="dashboard-num"\s+title="([^"]+)
并按 拆分\D
和内爆数组以仅留下数字,或类似的东西。(是的,小马来了,但这是一项快速而粗糙的工作,在此期间我不希望 Stack Overflow 的 HTML 发生改变。)
我目前没有 UNIX / Linux 设置,否则我会使用 cron、cURL 和 Perl(或者如果我足够勇敢的话,使用 sed 或 awk)将一些东西放在一起。在 Windows 上执行此操作的最简单的方法是什么?是否有一些实用程序可以做到这一点?如果这确实是最简单的方法(例如,与编写批处理脚本相比),我愿意安装 Cygwin 和此类软件,但我希望有一些程序可以向其中提供 URL 和正则表达式,然后就可以开始了。
答案1
实际上,在等待某人提出一个神奇的程序来解决我的所有需求时,我决定尝试一下 Cygwin,并发现它比我想象的要容易。
我只是
- 下载了 Cygwin,
- 确保在安装过程中检查
curl
、、cron
和cygrunsrv
, - 按照描述的步骤进行这个问题(实际上,我遇到了一些问题,但一些 Google 搜索建议通过
cron-config
默认方式安装,输入ntsec
守护进程,然后输入我的 Windows 密码,这样就成功了), - 设置以下内容定时任务:
* * * * * /home/andrew/cron/get_cvrq_size.sh
- 设置以下内容获取cvrq大小:
卷曲https://stackoverflow.com/review\ | grep 仪表板编号 \ | 头 -1 \ | sed 's/^.*<div class="dashboard-num" title="\([^"]\+\)".*$/\1/' \ | sed ‘s/,//g’ \ | sed 's/^/'`date -Iseconds -u`',/' \ >> /home/andrew/cron/cvrq_size.txt
而且效果非常好:-)
2013-11-25T20:05:01+0000,95583
2013-11-25T20:06:01+0000,95583
2013-11-25T20:07:01+0000,95583
2013-11-25T20:08:01+0000,95583
2013-11-25T20:09:02+0000,95589
2013-11-25T20:10:01+0000,95589
2013-11-25T20:11:01+0000,95587
2013-11-25T20:12:01+0000,95587
2013-11-25T20:13:01+0000,95586
2013-11-25T20:14:01+0000,95589
2013-11-25T20:15:01+0000,95587
2013-11-25T20:16:01+0000,95586
2013-11-25T20:17:01+0000,95585
2013-11-25T20:18:01+0000,95584
2013-11-25T20:19:01+0000,95596
2013-11-25T20:20:01+0000,95596
2013-11-25T20:21:01+0000,95596
2013-11-25T20:22:01+0000,95595
2013-11-25T20:23:01+0000,95595