前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用Power Query抓取POST请求类网页数据?

如何用Power Query抓取POST请求类网页数据?

作者头像
大海Power
发布2021-08-31 11:43:28
2.2K0
发布2021-08-31 11:43:28
举报
文章被收录于专栏:用户8950297的专栏

这篇文章我不建议你收藏,因为你不会打开收藏夹。我建议你现在花上5分钟读完这篇文章,用这5分钟,真正掌握一个知识点。

最近才发现,原来抓取BDI和BHSI指数的网站2021年以后没有更新了:

没办法,只好另外再搜索找个数据来源,当然,这个指数随便搜索一下,都一大堆:

既然那个排在第一位,咱们就取它的吧。

通过chrome浏览器进入网站后,右键菜单【检查】看一下参数(视频无声音,公共场合也可以放心播放):

哎,这么个简单的查询都用POST方法做请求……

不过,无所谓,简单的POST请求类网站数据的抓取也不复杂,虽然不像GET类网站那样可以一个网址直接粗暴搞定。

关于GET/POST方法的差异,简单来说,就是GET类主要用于传递一些简单的参数即可以实现数据的查询,所以会直接将这些参数加在网址后面,而POST类主要用于查询条件比较复杂的情况,所以会将这些参数做成一个表单传输,当然,POST类方法既然能用于复杂的情况,当然可以用于简单的情况,比如上面这个例子。(关于GET/POST更详细的信息,有兴趣的朋友可以搜索了解一下,但非IT专业人员一般也不太需要了解太深,知道有这么回事儿,在需要的时候知道怎么去找方法、或知道怎么问人也许就够了)。

那么,在Power Query里,怎么实现从POST类网页上抓取数据呢?记得以下三个必要的内容:

  • Request URL:请求链接。这个不用说了,没有链接怎么可能拿数据?
  • Content-Type:返回内容的类型。大概可以这么理解,既然post类方法用于复杂的数据查询,那返回的内容可能往往也是比较复杂的,那么应该告诉别人,用什么样的方式给你数据。
  • Form Data:表单数据。就是查询的条件(参数)啦。

有点儿复杂是不是?这些东西从哪里来?其实很简单,Chrome里通过“检查”功能都可以轻松得到这些信息:

甚至点击“View Source”后还可以直接看到这些参数最终传递的时候是什么样的:

有了这3项内容,在Power Query里就可以实现数据的抓取了。

其中,前2项可以直接复制粘贴到相应的框里,只是参数需要通过Text.ToBinary转换为二进制内容然后手动输入到Content参数里(视频无声音,公共场合也可以放心播放):

就这样,轻松搞定简单的POST类请求的网页数据抓取。

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

本文分享自 Excel到PowerBI 微信公众号,前往查看

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

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

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