Excel爬虫

Excel爬虫

使用Excel爬虫仅仅可以实现简单的数据爬取,主要是分为两类:一是网页页面存在有表格形式的数据;二是网页页面存在json形式数据。往往前者比较容易爬取,后者会比较困难,因为涉及到一些网页开发工具,相对而言使用excel爬取网页json数据不如python便捷,所以一般可以通过excel爬取网页的表格类型数据。

1. PowerQuery编辑器使用

需求:爬取淘宝天猫热销总榜销量,并使用PQ编辑数据

url:https://tophub.today/n/yjvQDpjobg

  • Excel数据—新建查询—从其他源—自网站—输入上面的url—得到响应数据—将数据转换到PQ编辑器中
image-20240110210016704
  • 第二列是爬取页面的数据,由于该爬取仅针对于表格文本,所以无法爬取图片。将第三行的文本信息提取得到商品原价和券后价:划分列—按分隔符—选择或输入分隔符为空格
image-20240110210454354
  • 去除原价¥和券后¥标识,并得到数值型数据的价格类型:添加列——提取——分隔符之后的文本——选择“券后¥”、“原价¥”——转换——数据类型——选择为小数
image-20240110211012139
  • 将第四列的热销数据提取出销量件数:添加列——提取——分隔符之间的文本——开始为热销,结束为件
image-20240110211353289

将分隔后得到的热销数据处理,将前面几个数据的单位万去掉,然后乘以10000,小于一万的不需要调整:转换——替换值——输入万,替换“ ”——转换为数值数据——添加列——条件列

image-20240110211814701
image-20240110212103543
  • 将PQ编辑器中的数据导出到excel表格中:主页——关闭并上载
image-20240110212241764

2. excel实现分页爬取

需求:爬取经管之家的最新主题

url:https://bbs.pinggu.org/z_index.php?type=1&page=1

  • 将url放置excel的自网页获得响应数据(与上面案例一样操作),然后将数据转换进去PQ编辑器
  • 点击视图——高级编辑器——将第一次爬取的代码修改为分页爬取代码
(page as number) as table =>
let
    源 = Web.Page(Web.Contents("https://bbs.pinggu.org/z_index.php?type=1&page="&Number.ToText(page))),
    Data0 = 源{0}[Data],
    更改的类型 = Table.TransformColumnTypes(Data0,{{"", type text}, {"主题", type text}, {"版块", type text}, {"回复/查看", type text}, {"最后发帖", type text}})
in
    更改的类型
image-20240110212928892

然后得到一个需要输入参数的函数页面,此时输入对应页面页数参数(比如说:3,表示第三页)仅仅只可以爬取输入参数页面的数据

image-20240110213158640
  • 通过构建一个列表来获得全部页数页面的数据:主页——新建源——其他源——空查询——输入={1..23},23是当前url下可以爬取到的最大页面页数——到表——确定
image-20240110213426545
  • 将bbs所有页面的数据都导出到上一步生成的23个列表中:添加列——调用自定义函数——确定。功能查询选的是此前高级编辑器代码生成的函数table列
image-20240110213851675
image-20240110214015565
  • 得到数据,并关闭PQ编辑器返回上载数据至excel表格