2017-11-02 13 views
1
import requests 



payload = {"query":"query GamePage_Game($name: String!, $type: DirectoryType!, $limit: Int, $languages: [String!], $cursor: Cursor, $filters: StreamMetadataFilterInput) {\n directory(name: $name, type: $type) {\n id\n displayName\n ... on Community {\n  id\n  streams(first: $limit, after: $cursor, languages: $languages) {\n  edges {\n   cursor\n   node {\n   id\n   title\n   viewersCount\n   previewImageURL(width: 320, height: 180)\n   broadcaster {\n    id\n    login\n    displayName\n    __typename\n   }\n   game {\n    id\n    boxArtURL(width: 285, height: 380)\n    name\n    __typename\n   }\n   __typename\n   }\n   __typename\n  }\n  pageInfo {\n   hasNextPage\n   __typename\n  }\n  __typename\n  }\n  __typename\n }\n ... on Game {\n  id\n  product {\n  id\n  __typename\n  }\n  streams(first: $limit, after: $cursor, languages: $languages, filters: $filters) {\n  edges {\n   cursor\n   node {\n   id\n   title\n   viewersCount\n   previewImageURL(width: 320, height: 180)\n   broadcaster {\n    id\n    login\n    displayName\n    __typename\n   }\n   game {\n    id\n    boxArtURL(width: 285, height: 380)\n    name\n    __typename\n   }\n   __typename\n   }\n   __typename\n  }\n  pageInfo {\n   hasNextPage\n   __typename\n  }\n  __typename\n  }\n  __typename\n }\n __typename\n }\n}\n","variables":{"name":"PLAYERUNKNOWN'S BATTLEGROUNDS","limit":30,"languages":[],"type":"GAME","filters":{"hearthstoneBroadcasterHeroName":"","hearthstoneBroadcasterHeroClass":"","hearthstoneGameMode":"","overwatchBroadcasterCharacter":"","leagueOfLegendsChampionID":"","counterStrikeMap":"","counterStrikeSkill":""}},"operationName":"GamePage_Game"} 
r = requests.post('https://gql.twitch.tv/gql', data=payload) 


print(r.text) 

I가 발생하고있어 문제가 있음을 내가 트 위치에서 정보를 얻기 위해 (등등 시청자 수 등)이 스크립트를 실행하려고하지만 난 얻을 응답이 {"error":"Bad Request","status":400,"message":"invalid request body format"} 때. 나는 이유를 알 수 없다.파이썬 요청 400 오류

(필자는 트 페이지를 새로 고침 할 때의 Chromes 개발 도구에서 "네트워크"탭에서 페이로드를 얻었다)

답변

1

사용 json 대신 data :

requests.post('https://gql.twitch.tv/gql', json=payload)