Я пытаюсь очистить данные графика нечетной истории с BetBrain.com.
Я могу добиться того, что хочу, используя этот код:
import requests
cookies = {
'langId': 'en_GB',
'selectedProviderCountryCode': 'All',
'oddsFormat': 'EU',
'bookieNameAndLogo': 'NAME_LOGO',
'showOddsWithCommission': 'false',
'gmtTimezoneOffset': '0',
'JSESSIONID': 'www1~573691318FFBA3BF838F049A885CA507.www1',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0',
'Accept': 'application/json',
'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
'Prefer': 'safe',
'Referer': 'https://www.betbrain.com/football/europe/uefa-champions-league/atalanta-bergamo-v-paris-saint-germain-fc/',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'https://www.betbrain.com',
'Connection': 'keep-alive',
}
params = (
('requestId', '1'),
('wsTrack', '7936e07f03c648df810679a0e4090561'),
('eventPartId', '3'),
('bettingTypeId', '69'),
('outcomeId', '109935936221057024'),
('bettingOfferId', '109935936463298560'),
('eventId', '112059307076505600'),
('providerId', '3000920'),
('domain', 'www.betbrain.com'),
('method', 'get'),
)
response = requests.get('https://newbbfeapi.betbrain.com/oddsHistory', headers=headers, params=params, cookies=cookies)
Однако это неустойчиво, поскольку я использую специфические особенности JSESSIONID Cook ie и wsTrack (я скопировал их значения из своего веб-браузера). Теперь я пытаюсь сгенерировать их непосредственно в Python.
Следуя идее Per Ravn (Python post request завершается неудачно 3 ), мне нужно позвонить в https://newbbfeapi.betbrain.com/httphs?method=get, чтобы получить wsTrack и JSESSIONID .
Заголовок ответа :
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
vary: Origin
Access-Control-Allow-Origin: https://www.betbrain.com
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Access-Control-Allow-Origin,Access-Control-Allow-Credentials
Set-Cookie: JSESSIONID=www1~45B6873B4A07D6FFEF221CEA339B2DA3.www1; Max-Age=57600; Expires=Tue, 04-Aug-2020 02:16:48 GMT; Path=/; Secure; HttpOnly; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
Content-Length: 47
Date: Mon, 03 Aug 2020 10:16:47 GMT
Тело ответа :
{"wsTrack": "0bb1e8c939574170819f8d3d2226637f"}
Следовательно, вот мой последний код, который должен был работать, но не работает:
import requests
with requests.Session() as session:
#First I get the wsTrack and JSESSIONID values
params = (
('method', 'get'),
)
postmand = session.get('https://newbbfeapi.betbrain.com/httphs', params=params)
sessPostRes = postmand.json()
wsTrack = sessPostRes['wsTrack']
sessionId = session.cookies['JSESSIONID']
cookies = {
'JSESSIONID': sessionId,
'langId': 'en_GB',
'selectedProviderCountryCode': 'All',
'oddsFormat': 'EU',
'bookieNameAndLogo': 'NAME_LOGO',
'showOddsWithCommission': 'false',
'gmtTimezoneOffset': '0',
}
params = (
('requestId', '1'),
('wsTrack', wsTrack),
('eventPartId', '3'),
('bettingTypeId', '35'),
('outcomeId', '111805999462014976'),
('bettingOfferId', '111948944129405440'),
('eventId', '111472476677099520'),
('providerId', '3000469'),
('domain', 'www.betbrain.com'),
('method', 'get'),
)
response = requests.get('https://newbbfeapi.betbrain.com/oddsHistory', params=params, cookies=cookies)
>>> print(response.text)
ERROR be87f6e1be094521832f6774c2b0200e
У вас есть идеи, как заставить его работать?
Спасибо за вашу помощь!