![Windows 上最简单的设置是发送 HTTP 请求,获取正则表达式并将其应用于响应,然后将匹配项写入输出文件](https://linux22.com/image/1387388/Windows%20%E4%B8%8A%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%98%AF%E5%8F%91%E9%80%81%20HTTP%20%E8%AF%B7%E6%B1%82%EF%BC%8C%E8%8E%B7%E5%8F%96%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%B9%B6%E5%B0%86%E5%85%B6%E5%BA%94%E7%94%A8%E4%BA%8E%E5%93%8D%E5%BA%94%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E5%8C%B9%E9%85%8D%E9%A1%B9%E5%86%99%E5%85%A5%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6.png)
我想写一个脚本来记录关闭 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