国庆节刚过完,《我和我的祖国》、《中国机长》、《攀登者》几部影片深受观众欢迎,豆瓣上好评如潮:
![d73c625cb5fd6307dc47594b3234b61c.png](https://img-blog.csdnimg.cn/img_convert/d73c625cb5fd6307dc47594b3234b61c.png)
我们想抓取这些影评做一个分析,影评如何获得呢?Power Query
网站分析
网站分析的过程是必要的,通过观察,我们发现这个网页内容的变化与网址中的一个值有关:
![e23acd76605796a2f6690f85bf3e1c7f.png](https://i-blog.csdnimg.cn/blog_migrate/3bb88696047b2c643f259c35a916c93d.jpeg)
每当按下前页、后页时这个值会发生变化,这就是我们将来要用作翻页参数的值。
尝试抓取
我们翻到中间页,复制网址开始抓取:
![b177048942acf9c498608139751c500c.png](https://i-blog.csdnimg.cn/blog_migrate/3527e0566d391da90dcfe51ce6369ab6.jpeg)
这样的页面我们查看了一下,表格内容,并没有我们期望的整个表格的数据:
![940305493cc501216b1b4a1ab2b417df.png](https://i-blog.csdnimg.cn/blog_migrate/1700d7b4b34d79bc39a0211815122a21.jpeg)
先确定,到了Power Query编辑器中,我们再来做调整,用文本格式直接对页面内容进行分析:
![133925c40e7c4609211b6958b4449573.png](https://i-blog.csdnimg.cn/blog_migrate/2d005737fd1b5f6bb4e25fca80c5fc4e.jpeg)
通过观察,我们发现所有的影评内容都是这个格式:
![dc28d3eb9c436a2ab7246a9f7239b495.png](https://i-blog.csdnimg.cn/blog_migrate/dd517141eaa6226f138f7d068458faa3.jpeg)
我们用两步来处理:
筛选:筛选包含有
格式代码的行
![330ecd9c30c1e4dfcd5f3fdb9354d672.png](https://i-blog.csdnimg.cn/blog_migrate/68eb427bb9f998929ea803e4282d9034.jpeg)
提取:提取两个尖括号之间的文本
![d80631091b8dbaacea27967777381bd7.png](https://i-blog.csdnimg.cn/blog_migrate/f62565493a5fc4d2b6e223d4e24fa11f.jpeg)
这样一页的影评就提取出来了。
定义抓取函数
在上面的查询右键创建函数:
![52b3dcbde602c5d72a38f874dd3c2a56.png](https://i-blog.csdnimg.cn/blog_migrate/9aa3b1346a968e72c709e36766d9c7a5.jpeg)
把参数添加进来,函数就制作好了。
抓取
我们需要一个页码变化的列表,像这样的{0,20,40,...}
试了一下到200基本就不能再往后了,就是要一个0-200,步长20的一个列表。
![03c21049194d1b4d57b9698a42896b33.png](https://i-blog.csdnimg.cn/blog_migrate/924d839a5b4744c19a271c8d450b6143.jpeg)
= List.Generate(()=>0,each _<=200,each _+20)
方法有很多种了,这个直观一些。
把这个列表转换乘表格,把这一列转成文本格式,然后自定义一列,应用自定义函数,参数就是我们这一列:
![f44325d00fff29870d386721f03f3a9d.png](https://i-blog.csdnimg.cn/blog_migrate/1eed4781723bb591685dd8824674e244.jpeg)
得到一列Table,展开这个表就是我们要的影评:
![4f6378dc9a4a5beb94decc98eb129d2a.png](https://i-blog.csdnimg.cn/blog_migrate/e5c68b945c9ee2964eecbcc5bf43cee8.jpeg)
扣个图
![da5dd2e469980e8260eeb05894effe49.png](https://i-blog.csdnimg.cn/blog_migrate/34d83027e2f54fc5bcda493ecc0cd4fe.jpeg)
py词云:
![9caf83e752d9e3b1a10a1af77728f9fb.png](https://i-blog.csdnimg.cn/blog_migrate/66d4fc86a631e66f23fb633f34d4c539.jpeg)