使用shell抽取html数据之二(r2笔记75天)
昨天使用shell脚本来抽取html数据的时候,碰到了一个问题,如果要抽取的数据成了如下的情形时,数据的抽取就会出现不一致,有一些记录会没有数据,只显示"未开售" 这个时候如果还是按照原来的思路来抽取就会出现数据混乱的情况,比如根据第一列抽取数据一共有75 行,但是根据右边的赔率只能得到74行,有一行的数据混乱,后面的数据就全乱了。
+1 |
5.80↑ 4.40 1.38↓ |
---|---|
2.58↑ 3.55↑ 2.18↓ |
|
2 |
未开售 |
1.55↓ 4.30 4.00↑ |
大体的Html代码如下: 可以看到对应的div FM2,FHMW如果都有数据,都含有3行对应的数据,如果div FMW中只显示“未开售”的时候,只有一行。 这样数据明显的不对应。 需要找到一定的规律来有条件的抽取和过滤。
<div class="selection">
<div class="FMW">
<a class="homewin btn" op="w"><span class="num">6.00<span class="hoverArea" oncontextmenu="retur
n false;"><cite></cite></a>
<a class="draw btn" op="d"><span class="num">4.30<span class="hoverArea" oncontextmenu="return f
alse;"><cite></cite></a>
<a class="awaywin btn" op="l"><span class="num">1.38<span class="hoverArea" oncontextmenu="retur
n false;"><cite></cite></a>
<div class="FHMW">
<a class="homewin btn" op="hdw"><span class="num">2.55<span class="hoverArea" oncontextmenu="ret
urn false;"><cite></cite></a>
<a class="draw btn" op="hdd"><span class="num">3.50<span class="hoverArea" oncontextmenu="re
turn false;"><cite></cite></a>
<a class="awaywin btn" op="hdl"><span class="num">2.22<span class="hoverArea" oncontextmenu=
"return false;"><cite></cite></a>
<span class="handicap td">
<em class="num nh">0</em>
<em class="num h"><b class="w0 td1 num h-pt">-2</b></em>
<div class="odds-area td no-select">
<div class="selection">
<div class="FMW">
<em class="no-sale">未开售</em>
<div class="FHMW">
<a class="homewin btn" op="hdw"><span class="num">1.53<span class="hoverArea" oncontextmenu="return false;"><cite></cite></a>
<a class="draw btn" op="hdd"><span class="num">4.45<span class="hoverArea" oncontextmenu="return false;"><cite></cite></a>
<a class="awaywin btn" op="hdl"><span class="num">4.00<span class="hoverArea" oncontextmenu="return false;"><cite></cite></a>
现在来做一个改进,按照div来抽取。
grep "em class="vs"" *e|awk -F"score-text">" '{print $2}'|awk -F"<" '{print $1}' > vs.lst
grep -A4 "div class="selection"" *e|grep -A3 "FMW" |awk '{ if($2~/no-sale/) {print ""num">0< n "num">0< n "num">0< n" } else {print $5$6}}'|awk -F"num">" '{print $2}'|awk -F"<" '{print $1}' |awk -v RS= '{print $1" " $2" " $3}' > fmw.lst
grep -A9 "div class="selection"" *e|grep -A3 "FHMW" |awk '{ if($2~/no-sale/) {print ""num">0< n "num">0< n "num">0< n" } else {print $5$6}}'|awk -F"num">" '{print $2}'|awk -F"<" '{print $1}' |awk -v RS= '{print $1" " $2" " $3}' > hfmw.lst
抽取后的数据就会很自然的显示出来,我们把“未开售”的记录设置为0
数据抽取过滤后,结果就会如下所示,数据就不会乱了。
1,3.40,3.35,1.88,1.71,3.65,3.70
2,0,0,0,2.85,4.20,1.85
1,4.90,3.95,1.50,2.24,3.60,2.47
1,7.10,4.80,1.29,2.95,3.75,1.91
1,5.30,3.85,1.48,2.26,3.35,2.58
1,5.00,4.00,1.49,2.25,3.55,2.48
1,3.20,3.40,1.93,1.68,3.75,3.75
- C/C++网络编程时注意的问题小结
- PHP防止SQL注入的方法
- HTML5离线缓存攻击测试
- IE的BHO通过IHTMLDocument2接口获得网页源代码
- 【C++】小心使用文件读写模式:回车('r') 换行('n')问题的一次纠结经历
- 【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题
- SEED缓冲区溢出实验笔记
- HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(一)
- Linux下ls命令显示符号链接权限为777的探索
- Django form表单
- Django ORM那些相关操作
- 使用mitmproxy嗅探双向认证ssl链接——嗅探AWS IoT SDK的mqtts
- Django中ORM介绍和字段及其参数
- 几个实现分页的方法
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Prometheus监控Minio集群
- Spring Boot 相关漏洞学习资料
- 口令爆破之突破前端JS加密
- 渗透测试之API测试技巧
- PC(C/S架构)客户端测试笔记
- 手把手教你使用Python开发飞机大战小游戏,4万字超详细讲解!
- Android通过URL文件下载及文件名提取
- PyTorch4:模块总览&torch.utils.data
- express处理文件上传
- 《机器学习》-- 第七章 朴素贝叶斯
- 【DIY数字仪表】RT-Thread移植touchgfx使用sd卡升级固件和图片资源(4)
- Transformers中的Beam Search高效实现
- 多边形裁剪图片升级啦!Cocos Creator !
- 使用curl进行服务器测试
- 打卡群刷题总结0805——不同的二叉搜索树