#python #session #python-requests
Вопрос:
Изображение данных и возврат http-запроса: Ошибка
И мой код:
def coinfarm_item(item_id):
login_page = "https://www.brick-hill.com/login"
user_Us = ""
user_Ps = ""
with open("config\accounts.txt", "r") as f:
lines = f.readlines()
for line in lines:
linea = ast.literal_eval(line)
for key, val in linea.items():
if key == "username":
user_Us = val
elif key == "password":
s = requests.Session()
e = s.get("https://www.brick-hill.com/shop/" str(item_id) "/")
user_Ps = val
L1_req = s.get(login_page)
aaa = L1_req.text
soup = a_As(aaa, 'html.parser')
aaa = soup.find_all("meta")
ass = ""
for meta in aaa:
if "csrf-token" in str(meta):
ass = str(meta)
ass = ass.replace("<meta content="", "")
ass = ass.replace('" name="csrf-token"/>', "")
data = {"_token": str(ass), "username": str(user_Us), "password": str(user_Ps)}
l_req = s.post(login_page, data=data)
#print(user_Us " daily claimed")
d_req = s.get("https://www.brick-hill.com/currency")
soup = a_As(d_req.text, "html.parser")
aaa = soup.find_all("meta")
for meta in aaa:
if "csrf-token" in str(meta):
as_s = str(meta)
as_s = as_s.replace("<meta content="", "")
as_s = as_s.replace('" name="csrf-token"/>', "")
for meta in aaa:
if "user-data" in str(meta):
as_a = str(meta) #<meta name="user-data" data-authenticated="true" data-id="560662" data-username="gugan9" data-membership="" data-bucks="1" data-bits="30" data-tax-rate="0.8" data-admin="">
#print(as_a.split())
bucks = as_a.split()[4].split("data-bucks="")[1].split(""")[0]
bits = as_a.split()[3].split("data-bits="")[1].split(""")[0]
username = as_a.split()[8].split('data-username="')[1].split('"')[0]
print(username)
#print(bucks)
#print(bits)
if int(bits) == 10 or int(bits) > 10:
#print(d_req.text)
conversion_data = {
"_token": str(as_s),
"type": "to-bucks",
"amount": int(bits)
}
s.post("https://www.brick-hill.com/currency", data=conversion_data)
#input("NOTE: Please change the price of the time that it will be ONLY bucks and I will suggest to wait 2-3 days before coin-farming. Press enter to continue.") #257672 , 140849 , 257767
b_page = "https://www.brick-hill.com/shop/purchase"
e = s.get("https://www.brick-hill.com/shop/" str(item_id) "/")
#print(e)
soup = a_As(e.text, 'html.parser')
ass = soup.find_all("buy-button")
a = print
ass = str(ass)
b_header = {
"accept": 'application/json, text/plain, */*',
"accept-encoding": 'gzip, deflate, br',
"accept-language": 'lt,en-US;q=0.9,en;q=0.8,ru;q=0.7,pl;q=0.6',
"content-length": '83',
'content-type': 'application/json;charset=UTF-8',
'cookie': '__stripe_mid=62f337b0-4b23-409e-a53e-ae5a2d104844fb1b4c; _ga_RYGCJBBDXR=GS1.1.1619287996.2.0.1619287998.0; _ga=GA1.2.11856487.1601205073; __cfduid=d1a672fd764353d7a86310c37e04e5a881619758035; __gads=ID=c50fa4f0b27f1af8-22091d6906c80022:T=1620147111:RT=1620147111:S=ALNI_MYnOUUShUU2nBjyaVp8UnalZMry9Q; _gid=GA1.2.108879649.1621700928; remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d=eyJpdiI6IkpDTkxtSEQ1WlNnQlFPUGxUQ3JZR3c9PSIsInZhbHVlIjoiN1ZERkYvNVN2Y3lXeFAwbHBIMC80ZXhjZ2ptUHl3ZHBYUlhPTzZIOW5QOVBlenMvRFBjQlhmRGdGQ2R3MzUvNnZMZXBSdWQ4SklFdmRUTHp5THpBdHZRUWp4bXFkekhuajM4TmppQk9GTHhSemMwN2NXdFpDbDlQOFRMTHBBL0g4K290SGE4czBON2llcFNLQzN2SHVXUE52ak52b0Uyd21ObTFVOElod3Y2bG5WRnZDeCtKcXBBQ3Y1VW5tVkc1RDM3cWpEZ3BlRDJsbHpWYjRTMTJKdWpRMUV4YjBVWi9oRy9YUUVrMUxCSjhTMndpbW8zU29tdkJlSG5uWUV6UWxvd3U5Q0tIdzlXd1RsNXlnWmJmNXc9PSIsIm1hYyI6IjljNWRjYzQ2NTFmY2NhYTFlMWZhMTAwM2I2MzZjY2MxYzk3NzIyMThmY2M1YWY1NDYyOTdkNWYwNDdiNTViNjcifQ==; __cf_bm=ddbb59ad412320460bd55defd7bb2e334ba19aef-1621797211-1800-AY1bjgCfpwYv6VLhCWEeILKIKyHRMx1ASgWnpJX6u4B8H7OPrsLu9poFXCpYszaqE72tcpIVqr77/d8yB8FPofs=; XSRF-TOKEN=eyJpdiI6IjNUblNXK010dVJVa0s3RXpXSEZHTGc9PSIsInZhbHVlIjoiVkJwV2Q1RU5KQS9xUFNtSUtObjEycDIwNTdkNWpGWWtaeHRIVzdicmhydzhqbFFMc1FwdmpubmxHYWVEMnlEWjVaSWxvMjlOU3RjNzhRQzU2U3c5S2RzTHFzNWJQNDhVcTZ4WlRKTVFBam5vUGFjS3lMSnY2TXRFZmg2MHVVZG0iLCJtYWMiOiI4YmYyZDhhNTRiOTc3YzcyZGU0Y2JjMDEyYmU4MWI3NmU4MzY5ZDExMTY2YzA0NWIyMTEyMDk1MGMyODA3ZjIyIn0=; brick_hill_session=eyJpdiI6Ik1tNVhhcG5NQyttS1ZycCs4RkJ3VVE9PSIsInZhbHVlIjoiSTIvbDdwRWFxRzczVzkrMkhMOTc2bHJ5Q2NVZUplWFlYaE80V3RHYmpHVEZCbGl2ZWU0Q2pjdXcvWVdkN3AzUmlKb09nN3lXRHdPSk9tdW1LRkV2SFUxTGVhakZvNWE5MHk1NXo0ZVNueWlxb1NNRVd2QU5PcWhXeFg3eURFY1oiLCJtYWMiOiI0YzU0YzM2NTUyOTgyNGZmMWY5NDkzMDBhYmM3MDBiMDg0ZWUxYjczN2NlZDIyMDJjOTE4MzgxMDIxMzBmYzllIn0=; _gat=1',
'origin': 'https://www.brick-hill.com',
'referer': 'https://www.brick-hill.com/shop/197376/',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',
'sec-ch-ua-mobile': '?0',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
'x-xsrf-token': 'eyJpdiI6IjNUblNXK010dVJVa0s3RXpXSEZHTGc9PSIsInZhbHVlIjoiVkJwV2Q1RU5KQS9xUFNtSUtObjEycDIwNTdkNWpGWWtaeHRIVzdicmhydzhqbFFMc1FwdmpubmxHYWVEMnlEWjVaSWxvMjlOU3RjNzhRQzU2U3c5S2RzTHFzNWJQNDhVcTZ4WlRKTVFBam5vUGFjS3lMSnY2TXRFZmg2MHVVZG0iLCJtYWMiOiI4YmYyZDhhNTRiOTc3YzcyZGU0Y2JjMDEyYmU4MWI3NmU4MzY5ZDExMTY2YzA0NWIyMTEyMDk1MGMyODA3ZjIyIn0='
}
#a(ass.split("<buy-button")[1].split(":")[2].split("bucks="")[1].split('"')[0]) #.split(":")[1].split("bits="")[1].split(""")[0]
if not ass.find(":bits"):
expected_price = ass.split("<buy-button")[1].split(":")[2].split("bucks="")[1].split('"')[0]
if int(expected_price) == 0:
buying_type = 2
else:
buying_type = 0
print(str(expected_price) " " str(buying_type))
#buying_type = 0
elif not ass.find(":bucks"):
input("Please change the item that it will be ONLY bucks. Press enter to exit.")
else:
expected_price = ass.split("<buy-button")[1].split(":")[2].split("bucks="")[1].split('"')[0]
if int(expected_price) == 0:
buying_type = 2
else:
buying_type = 0
print(str(expected_price) " " str(buying_type))
#print(expected_price)
product_id = ass.split("<buy-button")[1].split(":")[4].split('product_id="')[1].split('"')[0]
#print(ass.split("<buy-button"))
#print(product_id)
seller_id = ass.split("<buy-button")[1].split(":")[5].split("seller="")[1].split('"')[0]
if int(bucks) < int(expected_price):
input("Not enough money, press enter to exit.")
#print(str(expected_price) " " str(seller_id) " " str(product_id) " " str(buying_type))
#b_data = {"expected_price":int(expected_price), "expected_seller":int(seller_id), "product_id":int(product_id), "purchase_type":int(buying_type)}
b_data = {"product_id": int(product_id), "purchase_type": int(buying_type), "expected_price": int(expected_price), "expected_seller": int(seller_id)}
#print(str(b_data))
#print(b_get.text)
b_req = s.post(b_page, data=b_data, headers=b_header)
#print( b_req.text)
Этот код должен получить все учетные записи из accounts.txt файл и прочитайте его по каждой строке с помощью ast, чтобы превратить строку в словарь, accounts.txt содержит следующие форматы: {«имя пользователя»: «пользователь», «пароль»: «пароль»}
А затем он отправляет запрос на сеанс на сайт, и он переходит к преобразованию «битов» в «баксы», и он переходит на страницу товара, получает информацию, необходимую для отправки запроса на сеанс покупки, но затем, после того как вся отправленная информация будет отправлена, он просто возвращает, что есть 3 поля пустые (в то время как их нет) из 4.