小伙伴们大家好~

Excel和python作为当前两款比较火的数据分析处理工具,两者之间有很多共性也有很大的区别。

今天一起来看下在抓取网页数据这块,两者有什么异同点。


python如何抓取数据 数据抓取 python_python


上图中是中国证券监督管理委员会中沪市IPO公司的相关信息,我们需要提取其中的表格数据,分别利用Excel与python。

Excel

Excel提供两种获取网页数据的方法,第一种是 数据—自网站功能,第二种是Power Query。

方法一

首先,点击【数据】—【自网站】,如下图所示:


python如何抓取数据 数据抓取 python_python如何抓取数据_02


在弹出的界面中,输入抓取的网址之后,点击“转到”,接着点击“导入”。


python如何抓取数据 数据抓取 python_python_03


程序运行数秒(需要一定时间),网页数据就被抓取到Excel中来。

不理想的是,这个方法Excel将网页上的所有文字都抓取了下来,包括无关紧要的数据,如下图上部文字,需要手动删除。


python如何抓取数据 数据抓取 python_python 网页点击_04


方法二

Excel2016及其以上版本自带Power Query,16以下版本需要手动下载Power Query并安装。

依次点击【数据】—【新建查询】—【从其它源】—【从Web】,在弹出的界面中输入网址,点击确定。


python如何抓取数据 数据抓取 python_数据_05


接着网页中的表格就被被加载到Power Query中,双击table 0,点击“关闭并上载”,完整的数据表即被加载到Excel表格中来。


python如何抓取数据 数据抓取 python_python如何抓取数据_06


这种方法不同于第一种方法的是:

第一种方法直接将网页内容以文本的形式复制到了Excel中,第二种方法是采用动态链接的方法,如果原始网页表数值发生变化,只需要刷新下查询,Excel中的数据会跟着刷新,不需要二次采集,而且从效率上来看,第二种方法要优于第一种方法。

Python

从铺天满地的广告可以看出当前Python有多火,作为编程语言,它比Java、C、C++等其它语言要简单很多,上手也比较容易,除此之外,语言兼容性也很高,代码简单优雅。

如果用python爬取上面的网页,只需要三行代码,如下图所示:


python如何抓取数据 数据抓取 python_Power_07


这里没有用BS4,xpath等网页解析方法,pandas提供了read_html的功能,可以直接获取网页数据。

与Excel相比,python的优势在于效率与便捷性

多翻页数据获取

以上只是局限于抓取一个网页、单张表格的数据,那么如果获取多页网页的数据?

下图中一共有50个翻页,如果都抓取下来?


python如何抓取数据 数据抓取 python_Power_08


在获取之前,先要对网页进行简单的解析,就是找出每个网页之间的规律:


python如何抓取数据 数据抓取 python_python_09


观察前几个网页可以发现,每个翻页唯一的不同之处在于数字标签,上图中标红色数字。

弄清楚规律之后,利用一个循环,依次爬取50个翻页的数据。


python如何抓取数据 数据抓取 python_python_10


不同于单个网页的爬取,这里增加了for循环,同时增加了程序运行的时间,可以发现python抓取50个页面一共才消耗0.36分钟(21秒左右),其实Excel Power Query 也支持多页面数据的获取,但是效率极低地下,耗时较久,这里不做展示,感兴趣的小伙伴可以自己研究下。

小结

不同的软件,不同的使用场景,在抓取网页上可以说python的优势是要大于Excel的,但Excel的灵活性又是python所不及,小伙伴怎么看呢?