前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这个网站用PowerBI、PowerQuery怎么爬?这一招交给你

这个网站用PowerBI、PowerQuery怎么爬?这一招交给你

作者头像
陈学谦
发布2024-10-29 19:31:14
1120
发布2024-10-29 19:31:14
举报
文章被收录于专栏:学谦数据运营

有学员想爬这个网站,想用powerquery实现:

http://www.xinfadi.com.cn/priceDetail.html

但是发现它跟其他网址不太一样,因为翻页的时候地址栏还是一样的地址。

遇到这种情况该怎么办呢?

今天教你一招来搞定,此方法适用于很多网站,并且也是一项网爬的基本技能。

之前学谦写过一篇类似的文章,不过当时的具体情况是每次get请求的地址中带着页码,所以直接写一个参数页码来调用即可:

这个网站用PowerBI、PowerQuery不好爬?这一招交给你

【如果对于以下浏览器操作不熟悉,请先仔细阅读以上文章详细介绍】

但是今天遇到的这个网页,按照同样的方法获取请求时,发现有两点不同

1、多次查询,请求URL是相同的

2、这个不是get请求,而是post请求

针对此两点不同,应该如何实现获取数据,此文做一个介绍。

如果遇到请求URI相同,就一定代表着请求主体(body或payload负载)不同,因此我们找到请求主体页面,发现里面是带着一些参数的链接,那么这一部分就要放在提交请求里的主体内。

在powerquery中,就需要加这么一行:

代码语言:javascript
复制
  body = "limit=20&current=1&pubDateStartTime=2024/10/08&pubDateEndTime=2024/10/31&prodPcatid=&prodCatid=&prodName=",

另一点,请求方式是post,如果使用python,需要将之前的get变为post即可:

但是如果使用powerquery,需要注意加上一个请求头的参数“Headers”,因为我们在之前的文章中使用get请求没有提到这一点,即:

代码语言:javascript
复制
Headers = [#"Content-Type" = "application/x-www-form-urlencoded"]

将代码放入powerquery高级编辑器即可:

后半部分就是正常的使用powerquery的基本界面操作来展开整理获取的数据,大家都很熟悉了。

同时,想要获取所有页面或者所有日期的值,只需要将time和limit进行参数化即可实现,不再赘述。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档