网页表格抓取(Python批量爬取网页数据的文章,让我们一起看看吧)

优采云 发布时间: 2021-09-11 05:07

  网页表格抓取(Python批量爬取网页数据的文章,让我们一起看看吧)

  我写过一篇关于Python批量抓取网页数据的文章文章。后来发现随着版本的迭代,Excel已经全面支持多页爬取数据了。您无需编码,只需点击几下鼠标即可抓取数据。一起来看看吧~

  网页分析

  在抓取数据之前,先对网页进行分析。下图是豆瓣TOP250的初始页面。到最底部,一共10页,每页25部电影,一共250部电影。

  

  我们可以依次获取前三个页面的URL,找出它们之间的规则。除了中间的数字外,每个 URL 都相同。编号从 0/25/50 到 25 递增(每页电影的数量),共 10 页。

  

  发现规律后,我们将10页之间的数字存入一个表格中以备将来使用,如下图A列所示,保存以备将来使用。

  

  数据采集

  Excel2016及以上版本内嵌网络批量抓取功能(“数据”-“新建查询”-“其他来源”-“来自网络”),案例演示版本未到,所以我下载了A Power BI Desktop(Excel扩展产品),免安装免使用,效果和Excel一样,不用担心不会用,用Excel来操作就可以了。

  

  打开 Power BI Desktop 或 Excel,点击【获取数据】-【网页】(对于 Excel 2016 及以上版本,在“数据”-“新建查询”-“来自其他来源”-“来自网页”)

  

  界面设置:

  点击高级后,在 URL 部分,点击“添加组件”。一共有三个盒子。豆瓣TOP250首页网址以数字0分隔,分为三段,分别放在三个框中,如下图:

  

  你会发现在URL预览框中会自动显示完整的URL。点击确定完成设置。

  导航界面

  之后程序会进入抓数据状态,稍等片刻,跳出“导航”界面。左侧有一个表“表 1”。查看后,右侧显示屏显示了详细数据,在首页首页可以发现是豆瓣TOP250 25部电影;

  

  一共抓取了9个字段,包括序列号、电影名称、评分、评论数量、电影介绍等信息,部分栏目不需要,我们进入Power Query界面删除,以及点击底部的“数据转换”进入Power Query界面。

  Power Query 数据编辑

  进入Power Query界面后,只会保留序号、评分、电影名称、评论次数四列,其余列将被删除。删除后,四列数据将被重命名。*敏*感*词*显示如下:

  

  设置自定义函数

  依次点击【首页】-【高级编辑器】,在弹出的界面中,在字母“let”前输入如下代码:

  (p as number) as table =>

  

  然后将第三行代码中的数字["0"]替换为[(Number.ToText(p))],如下图:

  (Number.ToText(p))

  

  完成以上两步设置后,点击“确定”,可以发现原来的表1变成了函数样式,fx表1,其中p是函数参数,控件页码,如输入25、可以得到TOP250两页电影列表的数据。

  

  批量调用,批量抓取数据

  然后点击【新建源】-【Excel】,选择第一步保存备用Excel表格,导入后点击【添加列】-【调用自定义函数】,下拉函数查询选择【表1】 ,点击确定。

  界面会弹出警告框【需要与数据隐私相关的信息】,点击【继续】,勾选【忽略此文件的隐私级别检查】。 ...],点击【保存】后,程序进入页面抓取阶段。

  

  由于爬取的页面较多,程序需要运行一段时间。十多秒后,数据采集完成。总共十页存储在 10 个表中。点击字段【表格1】,勾选【展开】,TOP250信息显示在表格中。

  

  此时数据还在Power Query中,点击【开始】-【关闭并上传】将数据加载到Excel中,完成数据爬取。

  总结

  我们这些不会编码的人,曾经害怕数据爬行。随着ExcelBI工具的丰富,数据爬取会变得更简单,快来试试吧~

  如果您没有更高版本的 Excel,不妨尝试安装 Power BI Desktop。这很方便。您无需注册,只需打开并使用它。您可以从应用商店的 Microsoft 商店下载 Power BI Desktop。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线