一.背景

2W+条https://v.douyin.com/CeiCNd7L抖音分享链接,依次打开分享链接,抓取"真实链接","发布时间","点赞","收藏","评论","转发","昵称","抖音号","粉丝数","获赞总数","IP属地"这些字段。

不登陆的情况下会频繁跳出验证码或者登录弹窗,会导致"抖音号","IP属地"(需要点击到个人主页获取)无法获取,经过测试,大约在1500条链接以后,会显示图文或者视频不存在(实际上是存在的)
登陆的情况下会在抓取500条链接以后会有较大概率跳出验证码,并且随着打开的链接的增多,验证码的复杂度也随之提升,多次过不去会会显示图文或者视频不存在(实际上是存在的)
经过测试发现两种情况可能导致不存在,
1.第一个是出现验证码没有及时滑动,大概8-10次,就会被风控到
2.跑了2500条往上,会出现速度变慢,接着就被风控到
通过元素抓取共难点:
1.图文类型跟视频类型元素不通用
2.同一个链接在不同电脑打开,展现形式不同,有的数据是在内容下方,有的是在侧边
思考:
一般来说风控不外乎三种途径
1.通过检测IP在一定时间的访问量来判断
2.通过检测账号行为来判断
3.通过浏览器指纹来判断
在这个场景中,由于在不登录模式下也能获取数据,所以我们可以排除账号问题,经过测试我们发现在A电脑取数被风控以后,B电脑不受影响,AB电脑连接的是同一个WIFi,所以这个场景下,IP应该也不是影响取数的因素。同理在A电脑的谷歌浏览器被风控以后,换成影刀浏览器仍然能正常取数,所以这里重点应该放到浏览器指纹上面。
指纹浏览器+网页监听实现
初步尝试采用谷歌浏览器的无痕模式实现,发现仍然会被风控,遂考虑第三方指纹浏览器实现,经过选型以后采用hubstudio指纹浏览器实现(免费,每天可以打开20个环境)
图文接口:https://www.douyin.com/aweme/v1/web/aweme/post/?
视频接口:https://www.douyin.com/aweme/v1/web/aweme/detail/?
通过比对统一有以下url监听*https://www.douyin.com/aweme/v1/web/aweme/*
实现难点:



