小课堂:如何用Excel抓取网页数据

优采云 发布时间: 2022-05-04 06:20

  小课堂:如何用Excel抓取网页数据

  

  今日目标:

  学习用Excel抓取网页数据

  昨天,有个女学员提问:

  

  大致意思是这样的:

  1- 女,文科生,大三没什么课

  2- 感觉Python是潮流,不学就落伍了

  3- 想学Python,从哪里开始?

  很明显,朋友圈的里的python广告看多了。

  想学习数据爬取,何用python?用Excel就可以了。

  Excel从2016以后的版本,就内置了强大的数据处理神器Power Query,可以直接在Excel里,实现数据爬取。

  

  今天给大家介绍两种方法:

  第1种方法,是方法1。

  第2种方法,是方法2。

  怎么样?厉害吧?

  

  方法1

  两种方法的区别,主要看网页的结构。

  如果网页中的数据,使用的是table标签,那么直接导入web网页就可以了。

  比如,我们经常在豆瓣上,看即将上映的电影列表,这个就是一个table标签的网页。

  

  网页的地址是:

  使用Excel抓取数据的步骤是这样的。

  操作步骤1- Excel导入web数据

  在「数据」选项卡中,点击「自其它源」「自网站」。

  

  2- 粘贴web网址

  在弹出的对话框中,粘贴上面的网址,点击「确定」

  

  3- 加载表格数据

  这个时候,你会看到的就是Power Query的界面啦。

  在窗口左侧的列表中,选择table0,右侧就可以看到Power Query自动识别出来的表格数据了。

  

  4- 加载数据到Excel

  点击「加载」,就可以把网页数据抓取到表格中去了。

  

  使用Power Query的好处是,如果网页中的数据更新了,在导入结果上,右键「刷新」就可以同步数据。

  

  注意

  这里说的是网页中包含table标签的数据。

  什么意思呢?就是网页中的数据,本来就是一个表格结构,这个方法和你直接复制网页数据,粘贴到表格里,是一样的意思。

  对于那些非table标签的网页数据,这个方法不好使。

  怎么识别一个网页是不是table标签呢?很简单,选择任意一个数据,然后在网页中点击右键,选择「检查」。

  

  然后你会看到网页的源代码,你不需要懂,只要看到当前高亮的代码中,包含以下任意的标签,就表示网页用了table标签,可以用这个方法。

  <br /><br />

  如果没有的话,那就继续看方法2。

  

  方法2

  使用table标签保存数据,已经是非常古老的网页技术了。现在的网页大都使用div、span等格式更丰富、更灵活的标签,来呈现数据。

  这种网页就不好直接导入了。

  比如我常看的「知乎」,他们的网页里一个table都没有。

  

  用方法1导入到Power query里,左侧没有table数据,就不好抓取了。

  

  那怎么办呢?

  

  这个时候就要直接抓取数据包了。

  本质上,网页中的数据都会包打包成一个数据包,发送个网页后,网页再读取数据包进行渲染。

  这个数据包常用的格式是JSON,那么我们只要把JSON数据包抓取下来,也可以实现网页数据抓取。

  不管他,干就完事儿了。

  「下方高能预警」,如果你看不懂,可以直接跳过看方法3。

  操作步骤

  我们以知乎搜索Excel问题为例。

  1- 识别数据包

  首先,在页面中点击右键,选择「检查」。

  

  然后,右侧会出现网页调试窗口,然后点击「network」「xhr」,在这里面可以看到所有的数据传输记录。

  

  尝试着在知乎中搜索「Excel」,就可以看到数据的传输了。

  

  向下滚动页面,当右侧列表汇总看到了「search_v3?t=」时,抓住它,这个就是我们需要的数据包。

  

  2- 复制数据包链接

  然后在这个数据包上,点击右键选择「copy link address」复制数据包的链接。

  

  3- 导入json数据

  接下来就进入到了Excel操作界面,在「数据」选项卡中,点击「自其它源」「自网站」,粘贴数据包的链接。

  

  点击确定后,就进入到了Power Query的界面。

  

  数据包的结构,像是我们的「文件夹」一样,数据按照类别分别保存在不同的「子文件夹」中。

  打开数据包「文件夹」的方式,就是在数据上,点击右键选择「深化」。

  

  在数据上依次点击「深化」就可以找到我们的数据了。

  

  4- 批量读取数据

  最后,再写几个简单的函数,把「子文件」数据批量的读取出来。

  在「主页」选项卡中,点击「高级编辑器」打开函数编辑窗口。

  

  编写几个简单的函数,我们就完成了数据的抓取。

  

  最终抓取的数据如下:

  

  高级玩法

  当然,如果你比较熟悉Power Query的话,可以在上面的基础上,再加入参数,可以根据表格中的「搜索词」,实时的搜索知乎文章,一键刷新统计结果。

  

  方法3

  专业的事情交给专业的工具来做。

  Power Query是专业的数据整理插件,不是数据爬取软件,所以方法2,你看着可能会有些吃力。

  在爬虫这个领域,还是要用专业软件,比如「优采云采集器」。点击几下按钮,就可以轻松完成数据抓取。。

  操作步骤

  打开「优采云采集器」,在「网址」栏中粘贴入知乎的搜索网址,如:

  

  

  然后点击「智能采集」,接着优采云采集器会自动识别网页中的数据,等待识别完成。

  

  识别完成后,点击「开始采集」,数据就开始爬取了。

  

  爬取完成后,在弹出的对话框里,点击「导出」,数据就自动以表格的形式保存下来了。

  

  总结

  专业的事情,交给专业的工具来做。

  1- 简单的表格类网页,使用Power Query抓取,举手之劳。

  2- 复杂的网页,使用爬虫软件,也是点点按钮的事情。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线