首页 > 解决方案 > 为过去一周的特定游戏下载 50 个 twitch.tv 剪辑

问题描述

我正在使用下面的代码列出过去 7 天的 50 个 twitch.tv 剪辑。出于某种原因,该脚本没有获得观看次数最多的剪辑,而是开始进一步向下。(见图片

import requests

url = "https://gql.twitch.tv/gql"
json_req = """[{"query":"query ClipsCards__Game($gameName: String!, $limit: Int, $cursor: Cursor, $criteria: GameClipsInput) { game(name: $gameName) { id clips(first: $limit, after: $cursor, criteria: $criteria) { pageInfo { hasNextPage __typename } edges { cursor node { id slug url embedURL title viewCount language curator { id login displayName __typename } game { id name boxArtURL(width: 52, height: 72) __typename } broadcaster { id login displayName __typename } thumbnailURL createdAt durationSeconds __typename } __typename } __typename } __typename } } ","variables":{"gameName":"Counter-Strike: Global Offensive","limit":50,"criteria":{"languages":[],"filter":"LAST_WEEK"},"cursor":"MjA="},"operationName":"ClipsCards__Game"}]"""
r = requests.post(url, data=json_req, headers={"client-id":"kimne78kx3ncx6brgo4mv6wki5h1ko"})
r_json = r.json()

edges = r_json[0]['data']['game']['clips']['edges']
urls = [edge['node']['url'] for edge in edges]

for url in urls:
    print (url)

我正在尝试获取前 50 个剪辑,从观看次数最多的视频开始。向下滚动以调用要显示的更多剪辑时,要加载的第一个剪辑是要存储的第一个剪辑,而不是实际的第一个顶部剪辑。

如需更多信息,请询问。

谢谢

标签: pythonjsonparsingpython-requeststwitch

解决方案


根据文档,我看不到返回的数据是按任何特定顺序排列的。

测试您的代码我确实在列表中找到了顶部剪辑,您可能必须按查看次数排序才能获得与您显示的页面相同的结果。


推荐阅读