因为疫情宅在家里,除了刷刷头条,看看抖音,如果你是韩剧迷,有大把的时间可以来追剧。现在最火的是孙艺珍的《爱的迫降》,但是哪里找资源是个问题。
电视上基本上是看不到韩剧的,只有在网络上找资源了,网络上韩饭的网站很容易找到,还有个问题就是,一个一个的去翻看网页太麻烦,最好是自动找到链接地址。那就要用到Power Query的网络抓取功能了。Power Query网络抓取分四步:网站分析、试抓、自定义函数、抓取,我们还是按照这四个步骤进行。
网站分析
网址可以直接修改页码访问,在检查中也能正常预览,地址栏的网址就是真实网址,这就好办了。
进入到具体的剧集中,有下载地址,点击后有弹窗,里面显示了具体的下载连接,我们通过检查发现:
连接地址是可以找到的。
通过上面的分析,我们可以理清一个抓取的思路:
- 首先要根据页码逐个找到每个韩剧的名称和对应的网址
- 然后根据韩剧地址找到下载地址
就这么简单,抓取过程中可能需要两个函数,一个是根据页码抓网址的函数,一个是根据网址抓下载地址的函数。
试抓
试抓的过程会比较复杂,很多时候最初的试抓过程,并不能解决所有问题,甚至是大部分的问题,原因就是我们没有找到一个最佳的共同特性。我们先来试抓网址:
每页中的韩剧内容保存在一行里,这个比较少见,多数时候是一个表单,好在这个网页的格式非常固定,韩剧网址所在的行也是固定不变的,我们在第二步直接就保留一行就好了。这个方法在下载地址试抓中我也用了,后来发现那个下载地址网页内容极不规范,最后用了筛选行。
有时候大家看到一堆的html源码就慌了,其实html要想整齐的显示出来,代码必然也是有规律可循的,我们看页面中一页有12部韩剧,那么我们只要分成12列就好了,关键在于分列的分隔符用什么比较好?通过观察我们发现一部韩剧被认为是一个article,结尾的位置都有