zouzanyan / douyin_crawl

抖音视频批量爬取
GNU General Public License v3.0
70 stars 17 forks source link

关于抖音分页策略 #4

Closed Godlike-long closed 1 year ago

Godlike-long commented 1 year ago

首先非常感谢您的代码给予我的帮助!本人不太会这个 lssues 的格式。。🤣

CrawlMajority.py 文件中 get_video_info 方法: pageurl = f'https://www.douyin.com/aweme/v1/web/aweme/post/?aid=6383&sec_user_id={self.sec_uid}&count=10&max_cursor={max_cursor}&publish_video_strategy_type=2'

在您给出的以上获取作者主页信息的链接中,我发现您的代码是通过判断响应数据中 has_more 是否等于1来进行下一次请求的,而下一次请求变更的 max_cursor 参数也是从响应中取得,但您使用的该 v1 版本链接中 max_cursor 抖音其实每次都是返回固定的(一个时间戳,可能是作者的注册日期之类的🤔),也就是说当请求执行到第二次的时候,您的代码会固定 break,这就导致获取到的用户视频信息永远只会有10条。我有尝试搜索,发现以往使用的 v2 版本链接中的确是通过 max_cursor 来进行分页的,本人不善于爬虫分析,所以提了一个 lssues,提醒一下,也想关注一下作者后续的分析思路

zouzanyan commented 1 year ago

你好,我随便找了一个视频测试一下(https://www.douyin.com/user/MS4wLjABAAAApV-C05BNjW7ApBX-pIFkrryF8g7OzRjSv5l8ZgPVqis?vid=7260372541112339724),可以正常解析.你所说的'该 v1 版本链接中 max_cursor 抖音其实每次都是返回固定的',这个具体你可以debug一下,其实每次返回的max_cursor都是不同的,如果是相同的,上面这个链接也不会正常解析出83个视频

Godlike-long commented 1 year ago

谢谢你的回复,是我粗心了🫢

我没有理清楚抖音 视频图文的概念,它们在 aweme_list 中的结构是不一样的。而且我查了一下,原来 max_cursor 是分页游标的概念🤣

不过我发现您的代码中 break 跳出循环的时机不对,用户最后一页的数据会因此而忽略掉

zouzanyan commented 1 year ago

多谢提醒,用户最后一页的数据确实会忽略掉