перед запуском:
pip install --user requests
в командной строке cmd (он же терминал, она же консоль)
На данный момент работает, мой баланс парсит, выводит, ошибок нет.
import requests, urllib.parse, json, re
s = requests.session()
ua = r"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0"
s.headers = {"User-Agent": ua}
url = 'https://money.yandex.ru/'
login = 'vasya-ivanov'
password = 'secret'
resp = s.get(url, allow_redirects = True).content.decode("utf8")
if not "balance-widget__amount" in resp:
authurl = "https://passport.yandex.ru/auth?origin=money&retpath=https%3A%2F%2Fmoney.yandex.ru%2F"
resp = s.get(authurl, allow_redirects = True).content.decode("utf8")
token = re.search(r'data-csrf="([^"]+)"', resp).group(1)
resp = s.post(authurl, headers = {
"Referer":authurl
}, data = {
"retpath":url,
"fretpath":"",
"clean":"",
"service":"",
"origin":"",
"policy":"",
"is_pdd":"",
"csrf_token": token,
"login":login,
"hidden-password":password,
"passwd":password,
"twoweeks":"no"
}, allow_redirects = True).content.decode("utf8")
resp = s.get(url, allow_redirects = True).content.decode("utf8")
r = re.search(r'<div class="balance-widget__amount">.*?>([\d]+)<.*?>([\d]+)<', resp)
balance = float(r.group(1)+"."+r.group(2))
price_label = re.search(r'<span.*?price__label.*?">([^<]+)</span>', resp).group(1)
print("Я спарсил баланс!", balance, price_label)