实验内容
从因特网上搜索相关Web网页,处理网页html数据,从中提取出当前时间点北京各监测站的PM2.5浓度,输出格式如下。要求:写出各个处理步骤,并给出解释。
2020-03-09 13:00:00,海淀区万柳,73
2020-03-09 13:00:00,昌平镇,67
2020-03-09 13:00:00,奥体中心,66
2020-03-09 13:00:00,海淀区万柳,73
2020-03-09 13:00:00,昌平镇,73
2020-03-09 13:00:00,奥体中心,75
实验步骤
下载相关数据
wget http://www.86pm25.com/city/beijing.html
查看下载的数据
由于使用的是vs code的ssh remote,所以可以直接用vs code查看html文件
发现需要的数据,含有<td><img src =
,尝试用这段内容进行查找。
grep "<td><img" beijing.html
发现初步筛选完成。
删去html格式
将尖括号以及中间的内容替换成空格,得到如下结果
cat beijing.html | grep '<td><img' | sed -e 's/<[^<>]*>/ /g'
添加时间
发现时间行为 更新:2022年04月03日 15时
添加到grep筛选指令中
输出时间到每一行
常见一个1.awk文件,文件内容如下
/更新/
{
date = $2;
time = $3;
}
/m³/
{
printf "%s %s,%s,%s\n",date,time,$1,$2
}
然后执行
cat beijing.html | grep -E '<td><img|更新' | sed -e 's/<[^<>]*>/ /g' -e 's/更新:/更新 /g' |awk -f 1.awk
将时间修改成要求的格式
cat beijing.html | grep -E '<td><img|更新' | sed -e 's/<[^<>]*>/ /g' -e 's/更新:/更新 /g' |awk -f 1.awk |sed -e 's/年/-/g' -e 's/月/-/g' -e 's/日//g' -e 's/时/:00:00/g'
输出到文件夹中
cat beijing.html | grep -E '<td><img|更新' | sed -e 's/<[^<>]*>/ /g' -e 's/更新:/更新 /g' |awk -f 1.awk |sed -e 's/年/-/g' -e 's/月/-/g' -e 's/日//g' -e 's/时/:00:00/g'>1.txt
0 评论