Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests, json #ипортим библиотеки для отправки запроса и парсинга ответа JSON
- from python_rucaptcha import ReCaptchaV2 # импортим работу с капчей
- """ ruCaptcha settings """
- SITE_KEY = '6LfTwxsTAAAAAK9lS9yRZdEWsatDuXqMK9kGbIhd' #ключ сайта
- PAGE_URL = 'https://www.walmart.com/account/giftcards/balance' #ссылка где капча
- RUCAPTCHA_KEY = '______' # ключ ruCaptcha
- def getHeader(captcha_key,token):
- header = { #формируем хеадер
- 'Host': 'www.walmart.com',
- 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
- 'Accept': 'application/json',
- 'Accept-Language': 'en',
- 'Accept-Encoding': 'gzip, deflate, br',
- 'Referer': 'https://www.walmart.com/account/giftcards/balance',
- 'content-type': 'application/json',
- 'wml-captcha': captcha_key, #подставляем полученое значение
- 'x-csrf-jwt': token,#подставляем полученое значение
- 'origin': 'https://www.walmart.com',
- 'Content-Length': '117',
- 'DNT': '1',
- 'Connection': 'keep-alive',
- 'Pragma': 'no-cache',
- 'Cache-Control': 'no-cache'
- }
- return header
- def getCaptcha(): # тут все с офф. доков
- answer = ReCaptchaV2.ReCaptchaV2(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(site_key=SITE_KEY, page_url=PAGE_URL)
- if answer['errorId'] == 0:
- return answer['captchaSolve']
- elif answer['errorId'] == 1:
- print(answer['errorBody'])
- quit()
- def getBalance(card, pin):
- payload = {"captcha": "", "fieldErrors": [], "focusErrorFlag": "false", "number": card, "pin": pin, "useAlertRole": "true"} #данные формы
- session = requests.Session()
- a = session.get('https://www.walmart.com/account/giftcards/balance') # получаем хеадеры в ответ
- r = session.post("https://www.walmart.com/account/electrode/account/api/customer/:CID/gift-card/balance",
- headers=getHeader(getCaptcha(), #формируем хеадер, добавляем ответ капчи
- a.headers['X-Csrf-Jwt'] #формируем хеадер, добавляем занчение с хеадера первого входа
- ), data=payload # данные формы
- )
- session.close()
- if r.status_code == 200: # если код 200 - значит все хорошо
- data = json.loads(r.text)
- print("{}:{}|{}|{}\n".format(card,pin,data['balance'],data['currency']))
- else: # тут явно ошибка
- print('Error: '+r.text)
- getBalance("1111 1111 1111 1111", "1111")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement