Power Query 网络抓取概括性总结

这一段时间写了很多篇网络抓取方面的文章,很多网友可能对网络抓取还有疑虑,是不是游走边缘,担心跨省。其实我们用Power Query进行的网络抓取行为,大部分都是正常的数据收集工作,我们并没有突破防御从后台下载数据,那些都是做的事情。Power Query网络抓取,都是通过正常的网页访问来获取数据,只是比起手工翻页稍微自动化了一些。

数据类型

如果从抓取的数据类型的角度来区分,我们分为两大类:

 

  • 网页:文本格式的页面内容,从中提取表格或文本
  • 数据:主要是json格式的数据,如果你有数据库的账户和密码,Power Query也有对应的数据库接口,获取数据也是很方便的。

抓取步骤

如果从抓取步骤来分类也是两步:

 

为什么不是我们经常说的四步变成两步了?

这里所说的步骤单指我们M函数在网络抓取中的步骤。

第一步:抓取网页内容,都是Contents,结尾的M函数

第二步:分析网页内容,对第一步抓取过来的网页内容进行解析,文本、json、xml、csv、表格等等。

我们在之前的网络抓取文章中很少提到具体的函数,因为大部分的网络抓取函数应用,都是Power Query自动给我们生成,回过头来看看,就是我们现在看到的这个样子。

所以说,网络抓取两大核心工作:

  • 内容抓取是建立在分析的基础之上;
  • 内容呈现是选择合适的方式对网页内容解析,并作适当的格式处理。

M函数

我们常用到的函数组合:

 

这里简单说一下:

  • Web.BrowserContents返回的是文本格式,可以直接用Text类函数来处理,也可以用其他几种数据格式来解析。
  • Web.Contents返回的是二进制格式,用数据格式解析
  • AzureStorage.BlobContents返回的也是二进制格式,BLOB(binary large object)这个我也是在做COVID-19数据抓取时才注意到的,我们就理解为附件吧,图中的url直接就是一个文件的地址,在网络抓取需要直接读取附件内容时可以考虑使用这个函数。

 

综上所诉,Power Query网络抓取并不是很复杂,复杂的是网站千奇百怪,各有各的不同,所以我们要做好网站分析,不断尝试,总会找到办法的。

胜象大百科