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