首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Youtube API 'nextPageToken‘当’使用order=relevance‘时中断

Youtube API 'nextPageToken‘当’使用order=relevance‘时中断
EN

Stack Overflow用户
提问于 2018-11-27 12:24:10
回答 1查看 158关注 0票数 1

我使用python 3对视频中的所有评论进行分页。假设随机选择的视频具有id GFphNr0FK-0。截至目前,已有5450条评论。

我正在对检索到的结果进行分页,并检查是否存在nextPageToken密钥。如果存在,我从它获取值并继续循环,直到该键不再存在。

对于每次迭代或page,我都会将注释附加到列表中。我得到1600条评论(16页,每页100条评论),然后我开始得到错误400。

当我检查nextPageToken时,我发现每一个请求都会越来越长.我没有向它添加任何内容,它实际上是使用page_info['nextPageToken']检索的。

为了清晰起见,这是我的分页:

代码语言:javascript
复制
self.COMMENT_URL_PAGED = 'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&maxResults=100&order=relevance&videoId={videoId}&key={key}'

if 'nextPageToken' not in page_info:
    run = False
else:
    next_page_token = page_info['nextPageToken']

while run:

    page_info = requests.get(self.COMMENT_URL_PAGED.format(videoId = video_id, key = self.KEY, pageToken = next_page_token))

    while page_info.status_code != 200:
        time.sleep(10)
        page_info = requests.get(self.COMMENT_URL_PAGED.format(videoId = video_id, key = self.KEY, pageToken = next_page_token))
        print('Something went wrong. Token is: {}'.format(next_page_token))

    page_info = page_info.json()

    for i in range(len(page_info['items'])):
        comments.append(page_info['items'][i]['snippet']['topLevelComment']['snippet']['textOriginal'])

    if 'nextPageToken' not in page_info:
        run = False
        next_page_token = None
    else:
        next_page_token = page_info['nextPageToken']

有什么明显的错误吗?

更新

因此,我发现如果删除order querystring参数,它将按预期的方式工作.

为什么&order=relevance会让它在16页后被打破??

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 06:24:11

谢谢你的提问,这可能是解决我问题的办法。

同样的问题,只有不同之处,响应结束200 OK,空items

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53499644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档