Power Query中提取网页数据内容的函数是Web.Contents,我们来看下这个函数的用法及解释。
Web.Contents(url as text, optionaloptions as nullablerecord) as binary
第1参数是链接的文本格式;第2个参数是一个可空的记录格式;返回的是二进制格式。
通常来说get获取的方式,只需要填写url地址即可,也就是可以忽略后面的第2的可选参数。
我们先以获取搜索页的第一页为例:
Web.Contents("https://yw.zu.anjuke.com/fangyuan/p1/")
如果我们单独输入这个公式,Power Query会自动加上Web.Page函数来做网页结果分析,但是网页结果的分析有多个函数,我们在此列一下有哪些函数可以作为网页二进制文件的分析。
在这里我们首先需要使用到的就是Text.FromBinary函数,我们把这个函数添加到Web.Contents之前用作解析获得的网页二进制文件。这个转换获取的基本就是把网页源码给全部复制到Power Query里面了,作为一个文本格式储存。
之前针对网页结构分析的时候我们已经知道我们所需要的数据是在哪里,那我们先通过2个间隔符之间的文本提取方式,用到的函数为Text.BetweenDelimiters,把大致的数据在源代码的基础上全部提取出来。具体函数用法参考之前的文章提取指定文本之间的文本数据
我们再此基础上通过Lines.FromText函数把所有的文本段落作为行来处理。
接下来就可以进行数据的提取了,我们先来处理标题的提取。
我们找到标题所在行,并尽量找一个唯一包含内容能作为关键词提取的,这里我们找到了"</a> </h3>"作为关键词来进行提取,列表的提取函数为List.Select和文本包含函数Text.Contains相结合。我们需要的就是提取包含关键词的所在行,这样我们就能获得一个标题的列表了。
到了这一步基本上就基本已经把第一页的标题提取出来了。我们只需要进行下一步的清洗获得标准格式的数据即可。
接着我们用同样的方法来提取价格,地区,租赁类型,方型,楼层,详情链接等信息。
链接的筛选关键词:link
房型,面积,楼层的关键词:平米
地区关键词:</address>
租金关键词:</strong>