在数据采集的世界里,快手主播信息采集有着独特挑战。虽说看似简单,但加密参数和滑块验证却让人头疼不已。下面就和大家详细分享这个项目的全过程。
项目目标明确
本次项目主要是依据快手主播主页链接地址,去采集主播的详细信息。这些信息可重要,像视频图片、播放量、点赞数、评论数等。主播们精彩的视频背后这些数据能反映很多东西,有了这些数据我们就可以深入了解主播的影响力,很有研究价值。
加密参数难题
本以为这个项目没啥难度,谁知道一上手就碰到硬骨头——播放量、点赞数、评论数是加密参数。获取源码后看到的竟是类似韩文的样子。这可咋整,不过这也激起了我们的斗志,必须要找到破解它的办法,不能让这些加密参数拦住我们前进的步伐。
采集程序限制
采集程序倒不需要登录,不过有个大问题,一个 cookie 使用时间长了会被封。而且页面上还有滑块,这滑块还越来越多。我亲自测试的时候,最多划了三十多次滑块都没划过去,真让人崩溃。要是滑块一直搞不定,那采集工作就没法继续,太影响进度了。
多 cookie 策略
既然一个 cookie 不行,那咱就多换着用。等一个 cookie 失效了,就重新获取一个。这里用到了 selenium 自动化测试,我用的是 chrome 驱动。可原本以为用它就能顺利解决问题,没想到又生出新的麻烦,这后面的路还是充满崎岖。
cookie 获取波折
准备获取 cookie 时又出问题了。每次快手页面第一次打开,都会出现滑块。我当时就在想,这搞啥还要我划过去?后来经过反复测试才发现,其实不用划,出现滑块后直接刷新页面,滑块就自动消失了。这也算是无意间发现的小窍门,有了这个办法,获取 cookie 就顺利多了。
代码精简分享
整个项目的代码有采集程序 Ks.py,数字加密解密 jiami.py,selenium 获取 cookie get_cookie.py。不过源代码比现在分享的多,调用的接口不方便展示,就都删掉了,多线程也变成单线程。剩下的都是关键部分,大神们可以根据需求自行修改。这里要提醒大家,本文章仅用于学习交流,别用于商业用途,不然出问题后果自负。
大家在进行数据采集时,遇到过什么特别难搞的加密形式或者验证机制吗?欢迎在评论区分享,如果觉得这篇文章有用,记得点赞和分享。