
这一段时间写了很多篇网络抓取方面的文章,很多网友可能对网络抓取还有疑虑,是不是游走边缘,担心跨省。其实我们用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网络抓取并不是很复杂,复杂的是网站千奇百怪,各有各的不同,所以我们要做好网站分析,不断尝试,总会找到办法的。
胜象大百科







