小伙伴们大家好~
Excel和python作为当前两款比较火的数据分析处理工具,两者之间有很多共性也有很大的区别。
今天一起来看下在抓取网页数据这块,两者有什么异同点。
上图中是中国证券监督管理委员会中沪市IPO公司的相关信息,我们需要提取其中的表格数据,分别利用Excel与python。
Excel
Excel提供两种获取网页数据的方法,第一种是数据—自网站功能,第二种是PowerQuery。
方法一
首先,点击—,如下图所示:
在弹出的界面中,输入抓取的网址之后,点击“转到”,接着点击“导入”。
程序运行数秒(需要一定时间),网页数据就被抓取到Excel中来。
不理想的是,这个方法Excel将网页上的所有文字都抓取了下来,包括无关紧要的数据,如下图上部文字,需要手动删除。
方法二
Excel及其以上版本自带PowerQuery,16以下版本需要手动下载PowerQuery并安装。
依次点击———,在弹出的界面中输入网址,点击确定。
接着网页中的表格就被被加载到PowerQuery中,双击table0,点击“关闭并上载”,完整的数据表即被加载到Excel表格中来。
这种方法不同于第一种方法的是:
第一种方法直接将网页内容以文本的形式复制到了Excel中,第二种方法是采用动态链接的方法,如果原始网页表数值发生变化,只需要刷新下查询,Excel中的数据会跟着刷新,不需要二次采集,而且从效率上来看,第二种方法要优于第一种方法。
Python
从铺天满地的广告可以看出当前Python有多火,作为编程语言,它比Java、C、C++等其它语言要简单很多,上手也比较容易,除此之外,语言兼容性也很高,代码简单优雅。
如果用python爬取上面的网页,只需要三行代码,如下图所示:
这里没有用BS4,xpath等网页解析方法,pandas提供了read_html的功能,可以直接获取网页数据。
与Excel相比,python的优势在于效率与便捷性。
多翻页数据获取
以上只是局限于抓取一个网页、单张表格的数据,那么如果获取多页网页的数据?
下图中一共有50个翻页,如果都抓取下来?
在获取之前,先要对网页进行简单的解析,就是找出每个网页之间的规律:
观察前几个网页可以发现,每个翻页唯一的不同之处在于数字标签,上图中标红色数字。
弄清楚规律之后,利用一个循环,依次爬取50个翻页的数据。
不同于单个网页的爬取,这里增加了for循环,同时增加了程序运行的时间,可以发现python抓取50个页面一共才消耗0.36分钟(21秒左右),其实ExcelPowerQuery也支持多页面数据的获取,但是效率极低地下,耗时较久,这里不做展示,感兴趣的小伙伴可以自己研究下。
小结
不同的软件,不同的使用场景,在抓取网页上可以说python的优势是要大于Excel的,但Excel的灵活性又是python所不及,小伙伴怎么看呢?