使用shell抽取html数据之二

简介: 昨天使用shell脚本来抽取html数据的时候,碰到了一个问题,如果要抽取的数据成了如下的情形时,数据的抽取就会出现不一致,有一些记录会没有数据,只显示"未开售" 这个时候如果还是按照原来的思路来抽取就会出现数据混乱的情况,比如根据第一列抽取数据一共有75 行,但是根据右边的赔率只能得到74行,有一行的数据混乱,后面的数据就全乱了。
昨天使用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中只显示“未开售”的时候,只有一行。
这样数据明显的不对应。
需要找到一定的规律来有条件的抽取和过滤。

                                                        

                                                            
FMW">
                                                                 6.00
                                                                 4.30
                                                                 1.38
                                                            

                                                            
FHMW">
                                                                 2.55
                                                                     3.50
                                                                     2.22  "return false;">
                                                            

 
                                                     
                                                             0
                                                             -2
                                                        

                                                        

                                                        

                                                            
FMW">
                                                                 未开售
                                                                                                                                 
                                                            

                                                            

                                                                 1.53
                                                                     4.45
                                                                     4.00
                                                            
    


现在来做一个改进,按照div来抽取。

grep "em class=\"vs\"" *e|awk -F"score-text\">" '{print $2}'|awk -F" vs.lst
grep  -A4 "div class=\"selection\"" *e|grep -A3 "FMW" |awk '{ if($2~/no-sale/) {print "\"num\">000" '{print $2}'|awk -F" fmw.lst
grep  -A9 "div class=\"selection\"" *e|grep -A3 "FHMW" |awk '{ if($2~/no-sale/) {print "\"num\">000" '{print $2}'|awk -F" 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
阅读(8203) | 评论(0) | 转发(4) |
1
目录
相关文章
|
3月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
本文介绍了Twaver HTML5中数据的批量加载方法,通过使用`box.startBatch()`可以在大量数据加载时提高性能。文章通过示例代码展示了如何在React组件中使用批量加载功能,以减少界面重绘次数并提升效率。
59 2
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
48 1
|
4月前
|
JSON 前端开发 JavaScript
|
27天前
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
|
27天前
|
Shell 分布式数据库 Hbase
如何使用 HBase Shell 进行数据的批量导入和导出?
如何使用 HBase Shell 进行数据的批量导入和导出?
|
5月前
|
数据挖掘 Shell 测试技术
怎么用Python解析HTML轻松搞定网页数据
**Python解析HTML摘要** 本文介绍了使用Python处理HTML的常见需求,如数据提取、网络爬虫和分析,并讨论了三种解析方法。正则表达式适用于简单匹配,但对复杂HTML不理想;BeautifulSoup提供简单API,适合多数情况;lxml结合XPath,适合处理大型复杂文档。示例展示了如何用这些方法提取链接。
144 2
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
110 1
|
3月前
|
XML 移动开发 JSON
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
本文介绍了Twaver HTML5中的数据容器(DataBox),包括如何进行增删查改操作、遍历数据容器以及判断网元是否存在于数据容器中。DataBox用于管理所有的网元对象,如ElementBox、LayerBox、AlarmBox等,并通过示例代码展示了其常用方法的使用。
48 1
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
|
3月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(2)基本数据元素(Data)
本文介绍了Twaver HTML5中的基本数据元素,包括Data、Element、Alarm和Layer等,它们分别用来描述拓扑的网元、告警和图层。文章详细解释了Data类的基本属性和方法,并提供了如何在React组件中使用Twaver创建节点和连线的示例代码。
46 1
Twaver-HTML5基础学习(2)基本数据元素(Data)
|
3月前
|
数据采集 存储 JavaScript
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取
在现代网页开发中,复杂的HTML结构给爬虫技术带来挑战。传统的解析库难以应对,而Cheerio和jsdom在Node.js环境下提供了强大工具。本文探讨如何在复杂HTML结构中精确提取数据,结合代理IP、cookie、user-agent设置及多线程技术,提升数据采集的效率和准确性。通过具体示例代码,展示如何使用Cheerio和jsdom解析HTML,并进行数据归类和统计。这种方法适用于处理大量分类数据的爬虫任务,帮助开发者轻松实现高效的数据提取。
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取