python - 为过去一周的特定游戏下载 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 个剪辑,从观看次数最多的视频开始。向下滚动以调用要显示的更多剪辑时,要加载的第一个剪辑是要存储的第一个剪辑,而不是实际的第一个顶部剪辑。
- 第一个剪辑(要保存的所需剪辑等..) https://imgur.com/3fEsdP3
- 存储的剪辑 https://imgur.com/e197RYk
如需更多信息,请询问。
谢谢
解决方案
根据文档,我看不到返回的数据是按任何特定顺序排列的。
测试您的代码我确实在列表中找到了顶部剪辑,您可能必须按查看次数排序才能获得与您显示的页面相同的结果。
推荐阅读
- python - 将 groupby 的第一个值设置为 Nan
- c# - 您可以对没有返回类型的 void 方法进行单元测试吗?
- java - 为什么 java.util.ArrayList.remove(int index) 在下面的代码中不能正常工作?
- reactjs - 使用带有类和函数的 React Hooks 参考
- python - AWS 胶水爬虫奇怪地解析了镶木地板的时间
- android - 如何处理 ndk 中的内容 uri?
- excel - 如何用运行值填充单元格,直到我遇到一个新数字并计算总和?
- wordpress - 按元值删除多个用户 - WordPress
- node.js - 如何在 NestJS 上实现 MongoDB 的存储库设计模式
- python - 在 python 中如何正确使用类装饰器链?