这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战
中午边吃饭边刷手机,突然刷到某音刚上线了网页版 某音网页版,打开一看,好家伙,这不是抄.... 额,不,借鉴的油管么,就想着网站刚上线,肯定有没有那么强的反扒机制,撸个爬虫玩玩吧
开源地址:某音爬虫
主要使用Python3实现
一、请求一个列表页,获取到html,匹配出页面中全部详情页链接,生成链接池
二、原本想从链接池中取出详情页地址,请求详情页html,从中匹配出视频资源地址,进入视频池,但是测试后发现由于视频资源链接为动态获取,直接拿不到视频地址,于是采取了第二种方案,使用调起浏览器来加载页面,加载完成后使用定位到视频资源位置,提取资源链接进入视频池
三、从视频池中取出资源地址,下载保存到本地
四、到这里基本功能已经实现,代码执行中发现,链接池只能获取到10个链接,只能下载10个视频,检查后发现是列表页有懒加载功能,每次翻页到底部才能加载出下一页列表
五、到这里已经有了解决思路,只要我们自动翻页,一直翻到最后,加载完全部列表在去抓取链接池就可以了,此处使用插入JS,操作翻页,然后运行代码,发现还是获取不到完整的链接池,只能获取到最后两页的,猜测可以是做了优化,翻过去的列表被移除了
六、这也好解决,我们只要在每次翻页的时候去获取一次链接池就,当翻页完成就可以获取到完整链接了,这样又诞生了一个新的问题,就是会获取到重复的链接,只要在翻页完成时,转换下数据类型,去重就可以了
七、然后就可以快乐的爬视频了
看起来上面说的不少,实际上只需要五十行左右代码就可以实现
本次爬站没有什么太大的障碍,没有什么复杂的反扒机制,没啥可说的.... 另外问下,这够判几年...
目前本程序已经不适用于当前版本某音,原因是某音增加了新的反扒机制,会弹出滑动验证码,本文仅作学习参考使用
公司名称: 亚游-亚游娱乐-注册登录站
手 机: 13800000000
电 话: 400-123-4567
邮 箱: admin@youweb.com
地 址: 广东省广州市天河区88号