Code – die besten Beiträge

onclick-event auf webseite mittels python triggern?

Hallo,

ich habe auf einer Webseite eine Tabelle mit verschiedenen Einträgen.
Wenn ich einen Eintrag anklicke, wird eine Funktion aufgerufen

<td onclick="handleRestart(1,3)">xxxxxxxx</td>

Diese Funktion (handleRestart) kann sehe ich auch im Quelltext.

function handleRestart(neu, idx) {
	if (!idx) idx = 1;
	if (neu > 0) {
		jQuery.getJSON( url + "&callback=?", {
			quizSelection: idx
		}, function( retVal ) {
		  quiz = retVal;
		  if (quiz.error && quiz.error == "forbidden") {
			  handleServerError();
		  }
		  quiz.fragenPointer = 0;
		  anzFalsch = 0;
			jQuery("#frageContainer").html(renderQuestion(quiz.fragen[quiz.fragenIds[quiz.fragenPointer]]));
		  renderStats();
	  });
	} else {
	  quiz.fragenPointer = 0;
		anzFalsch = 0;
		for (i= 0; i < quiz.fragenIds.length; i++) {
			quiz.fragen[quiz.fragenIds[i]].answer = -1;
		}
		jQuery("#frageContainer").html(renderQuestion(quiz.fragen[quiz.fragenIds[quiz.fragenPointer]]));
		renderStats();
	}
}

Gibt es eine Möglichkeit mittels Python die Seite aufzurufen und dann die Funktion aus dem Python-script zu triggern?

Mittels "requests" kann ich ja http-requests schicken. Aber gibt es auch eine möglichkeit, wenn ich die Seite geladen habe

z.B.

 r = requests.get('webseite')

die Funktion (handleRestart) zu triggern?

Es gäbe noch weiter Funktionen, die ich dann aufrufen möchte, aber das denke ich ist dann ähnlich.

Wenn ich in der Tabelle auf einen Eintrag klicke, bekomme ich ein Quiz.
Im Quelltext wird durch ein Funktionsaufruf eine .json geholt. Diese würde ich mir gerne ansehen und evtl. Daten rausholen. Ziel ist es alle Fragen des Quiz zu bekommen, ohne händisch durchzugehen und diese aufzuschreiben.

HTML, Webseite, JavaScript, Code, Programmiersprache, Python, Python 3

Bitget Order Bot?

Moin, ich möchte gerne einen python Bot bauen, welcher für mich Future Postionen auf Bitget eröffnet.
Ich bekomme nur leider immer den gleichen fehler und weiß nicht wie ich das umgehen soll. Kann mir da jemand weiterhelfen?
Fehler:
Versuch 1 von 10...

Fehler beim Platzieren der Order:

{
  "code": "40009",
  "msg": "sign signature error",
  "requestTime" :1738611623938,
  "data": null
}

Warte 30 Sekunden vor dem nächsten Versuch...

Code:

import requests
import time
import hmac
import hashlib
import configparser
import json
# Lade die Konfiguration aus der config.ini Datei
config = configparser.ConfigParser()
config.read('config.ini')
api_key = config['bitget']['api_key']
secret_key = config['bitget']['secret_key']
passphrase = config['bitget']['passphrase']
# Bitget API Endpoints
BASE_URL = 'https://api.bitget.com'
END_POINT = '/api/mix/v1/order/placeOrder'
# Funktion zur Generierung der Signatur
def generate_signature(secret_key, message):
  return hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256).hexdigest()
# Funktion zur Erstellung der Headers
def create_headers(api_key, secret_key, passphrase, request_path, body):
  timestamp = str(int(time.time() * 1000))
  message = timestamp + request_path + json.dumps(body, separators=(',', ':')) # Wichtig: Keine Leerzeichen im JSON
  signature = generate_signature(secret_key, message)
  headers = {
    'Content-Type': 'application/json',
    'ACCESS-KEY': api_key,
    'ACCESS-SIGN': signature,
    'ACCESS-TIMESTAMP': timestamp,
    'ACCESS-PASSPHRASE': passphrase
  }
  return headers
# Funktion zum Kauf von Bitcoin im Futures-Markt
def buy_bitcoin_futures(amount_usdt):
  request_path = END_POINT
  body = {
    "symbol": "BTCUSDT_UMCBL",
    "marginCoin": "USDT",
    "side": "open_long",
    "orderType": "market",
    "price": "0",
    "size": str(amount_usdt),
    "timeInForce": "normal"
  }
  headers = create_headers(api_key, secret_key, passphrase, request_path, body)
   
  response = requests.post(BASE_URL + request_path, headers=headers, json=body)
   
  if response.status_code == 200:
    print("Order erfolgreich platziert:", response.json())
    return True # Erfolg
  else:
    print("Fehler beim Platzieren der Order:", response.text)
    return False # Fehler
# Hauptfunktion
if __name__ == "__main__":
  amount_usdt = 5 # 5 USDT
  max_retries = 10 # Maximale Anzahl von Versuchen
  retry_delay = 30 # Verzögerung zwischen den Versuchen in Sekunden
  for attempt in range(max_retries):
    print(f"Versuch {attempt + 1} von {max_retries}...")
    success = buy_bitcoin_futures(amount_usdt)
     
    if success:
      break # Erfolg, Schleife beenden
    else:
      print(f"Warte {retry_delay} Sekunden vor dem nächsten Versuch...")
      time.sleep(retry_delay) # Warte 30 Sekunden
  if not success:
    print("Maximale Anzahl von Versuchen erreicht. Order konnte nicht platziert werden.")
Bot, Code, Programmiersprache, Python, Python 3, Bitget

Meistgelesene Beiträge zum Thema Code