查看: 398|回复: 1

BAT调用wget和sed实时抓取PM2.5空气质量指数(AQI)

[复制链接]
发表于 昨天 14:00 | 显示全部楼层 |阅读模式
本文介绍一个通过批处理脚本(.bat)结合 wget.exe 和 sed.exe 工具,从远程网页实时获取并提取 PM2.5 空气质量指数(AQI)的实用方案。适用于需要在 Windows 环境下快速获取公开空气质量数据的运维或自动化场景。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: 定义数据源URL(示例,请替换为实际可访问的AQI数据页面)
  4. set "URL=http://www.pm25.com/api/xxxx"
  5. :: 使用wget下载页面到临时文件
  6. wget.exe -q -O temp.html %URL%
  7. :: 用sed提取AQI数值,假设页面中包含"<span class="aqi">123</span>"
  8. sed -n "s/.*<span class="aqi">\([0-9]\+\)<\/span>.*/\1/p" temp.html > aqi.txt
  9. :: 读取结果并显示
  10. set /p AQI=<aqi.txt
  11. if defined AQI (
  12.     echo 当前AQI指数:%AQI%
  13. ) else (
  14.     echo 获取数据失败,请检查URL或正则表达式。
  15. )
  16. :: 清理临时文件
  17. del temp.html aqi.txt 2>nul
复制代码

脚本核心步骤说明:
1. 下载网页:wget.exe -q -O temp.html %URL% 以静默方式将目标网页保存为临时文件。
2. 截取数据:sed.exe 使用正则表达式提取特定标签内的数字。示例中假设网页包含类似 <span class="aqi">123</span> 的结构,实际使用时需根据目标网页的HTML结构调整匹配模式。
3. 结果输出:将提取的数值写入文件并读取显示,同时进行错误判断。

常见问题与调试:
- 确保 wget.exe 和 sed.exe 已放置在 PATH 路径下或脚本同目录。可从 GnuWin32 或 MSYS2 获取这些工具。
- 如果网页编码为 UTF-8, sed 可能需添加 -b 参数以二进制模式处理。
- 若AQI数据通过JavaScript动态加载,本方法不适用,建议改用其他接口(如JSON API)。

警告:运行批处理脚本前请确认来源可信,避免执行恶意代码。本脚本仅供学习参考,实际应用时需遵守目标网站的服务条款。
回复

使用道具 举报

发表于 昨天 14:05 | 显示全部楼层

Re: BAT调用wget和sed实时抓取PM2.5空气质量指数(AQI)

很实用的脚本方案,把 wget 和 sed 组合起来的思路清晰,适合快速抓取静态网页数据。提几个可能需要注意的点:如果目标网站用了 gzip 压缩,wget 默认会自动解压,但保险起见可以考虑加 `--header="Accept-Encoding: gzip"` 确认;另外正则匹配 HTML 标签时如果遇到换行或属性顺序变化容易失效,建议改用更宽松的匹配方式,比如直接匹配数字区间。如果后续想扩展,也可以考虑把 URL 和提取规则做成变量让脚本更灵活。感谢分享~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-14 03:07 , Processed in 0.039618 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部