数据爬虫经常会涉及到表格数据的抓取
院系 | 姓名 | 年龄 |
计算机系 | 张三 | 18 |
音乐系 | 李四 | 19 |
生化系 | 王五 | 20 |
类似这样的表格相信大家都知道怎么提取,但有时候会遇到有单元格合并的情况,比如下面这种
院系 | 姓名 | 年龄 |
计算机系 | 张三 | 18 |
李四 | 19 | |
生化系 | 王五 | 20 |
赵六 | 21 |
提取的方法可能有很多,我这里提供下我解决这种问题的思路
思路:第一种类型的表格数据抓取与组织比较简单,所以我这里考虑把第二种表格转为与第一种表格类似的情况
当然,并不是要改变html源码。
1、先把院系列表抓取下来 [‘计算机系’,‘生化系’]
2、把院系标签的rowspan值列表抓取下来 [‘2’,'2']
3、把姓名、年龄的列表抓取下来 [['张三',18],['李四',19],['王五',20],[’赵六‘,21]]
4、把院系列表与院系rowspan标签值列表中各元素对应相乘,得到一个新的院系列表 [‘计算机系’,‘计算机系’,‘生化系’,‘生化系’]
5、把新的院系列表与姓名、年龄的列表一一关联起来
这里只提供了思路,不过我相信大家都能够自己实现了。
关于数据的整合,map和reduce函数这个时候能起很大作用。