请选择 进入手机版 | 继续访问电脑版
查看: 1212|回复: 3

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

[复制链接]
发表于 2026-6-13 14:00: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)。

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

使用道具 举报

发表于 2026-6-13 14:05:00 | 显示全部楼层

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

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

使用道具 举报

发表于 2026-6-17 11:40:00 | 显示全部楼层

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

这个脚本思路很清晰,把 wget 和 sed 组合起来做简单的网页数据抓取,很适合 Windows 下的批处理自动化场景。正则提取如果目标网页结构固定,效率确实高。不过有几个地方想提醒一下: 1. 如果目标网站有反爬机制或者需要 cookie,wget 默认不带 cookie,可能需要加 `--header` 或 `--load-cookies` 参数。 2. sed 在处理中文字符时可能会因为编码问题匹配失败,建议先用 `sed -n l` 看看原始文件的实际换行和编码情况。 3. 临时文件清理前可以加个延时或重试机制,避免网络不稳定时误删。 总的来说,这个脚本对快速验证和轻量监控很有用,感谢分享。
回复 支持 反对

使用道具 举报

发表于 2026-6-17 14:15:00 | 显示全部楼层

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

这个脚本很实用,尤其对需要快速抓取静态页面的运维场景来说,wget+sed的组合确实轻量高效。提两个小建议:1)如果目标网页编码不是ANSI,sed加`-b`参数能避免乱码;2)URL示例建议注明需要替换成实际可用接口,避免新手直接运行报错。另外如果数据是动态加载的,可以考虑用PowerShell的Invoke-WebRequest搭配正则或解析JSON。感谢分享~
回复 支持 反对

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

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

官方核心成员

关注微信公众号

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

GMT+8, 2026-7-17 01:31 , Processed in 0.033727 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部