Windows 上最简单的设置是发送 HTTP 请求,获取正则表达式并将其应用于响应,然后将匹配项写入输出文件

Windows 上最简单的设置是发送 HTTP 请求,获取正则表达式并将其应用于响应,然后将匹配项写入输出文件

我想写一个脚本来记录关闭 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,并发现它比我想象的要容易。

我只是

  1. 下载了 Cygwin,
  2. 确保在安装过程中检查curl、、croncygrunsrv
  3. 按照描述的步骤进行这个问题(实际上,我遇到了一些问题,但一些 Google 搜索建议通过cron-config默认方式安装,输入ntsec守护进程,然后输入我的 Windows 密码,这样就成功了),
  4. 设置以下内容定时任务
    * * * * * /home/andrew/cron/get_cvrq_size.sh
  5. 设置以下内容获取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

相关内容