Gutefrage API?

Das Ergebnis basiert auf 3 Abstimmungen

Ja. Link: 67%
Weiß ich nicht 33%
Nein 0%

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Ja. Link:
Woher ich das weiß:Recherche
Epidermal8276  09.08.2022, 22:59

Diese API ist aber inoffiziell und hat ein sehr beschränkten funktionsumfang.

0
Hanibal545  09.08.2022, 23:17
@Epidermal8276

Aber ich kenne keine andere Api, welche Offiziell ist und "fast" alle Funktionen hat

1
Epidermal8276  09.08.2022, 23:25
@Hanibal545

Ich hab heute für ein Proof of konzept für datenverarbeitung mir die seite hier angeschaut und es war vergleichsweiße schwer. Selbst github war einfacher. Ich hab vor dann n wissenschaftliches paper zu veröffentlichen :D Mein aller erstes

1
Ja. Link:

Ok,

Es gibt api's für GuteFrage. Ich habe ein "deepdive" in den Seitenaufbau gemacht, und die Folgende API wird von GuteFrage im Browser verwendet.

Ich habe nur die read only api angeschaut, aber es mus auch eine zum posten geben.

Erstmal brauch man einen API key. Der ist einfach zu bekommen, und steht wie bei vielen anderen Seiten auch in einem Java Script file. Wenn du auf der Datei bist ist das sicher überwältigend. Suche mithilfe von strg+f nach: 0;var t="

Dann koppiere den Key in einen string.

api_key = "<API key>"

Der Endpoint ist:

url = "https://www.gutefrage.net/graphql"

Dein request header sollte so aussehen:

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
    "Connection": "keep-alive",
    "Origin": "https://www.gutefrage.net",
    "x-api-key": api_key
}

Das keep alive kann weg gelassen werden, solang nur ein request gesendet wird. Es verschnellert aber generell die request bei mererern.

Die Origin ist wichtig, da sonst ein 403 status code kommt.

Der Request muss ein post request sein:

r = requests.post(url=url, json=data)

in "data" variable kommt der querry rein.

data = {
    "query": query,
    "variables": {
        "nickname": username
    }
}

Die query variable ist ein langer graphql querry. Hier findet sich ein beispiel mit dem man nutzerdaten bekommen kann: https://pastebin.com/Kex2mDV1

Dies ist aber nur ein Beispiel man kann auch andere Daten als nutzerdaten bekommen. Dafür schaut euch qraph ql querys an.

Ich hoffe ich konnte helfen und einigen richtig viel arbeit ersparen

Epidermal8276  09.08.2022, 23:27

Ich habe den link zum Java Script file vergessen. Hier is er: https://www.gutefrage.net/nmms-assets/js/bundle-other-e76da2918f85040e8c52.min.js

1
Mensch4  19.06.2023, 20:03
@Epidermal8276

kann es sein dass der link nicht mehr aktuell ist? es leitet mich auf die 404 seite weiter

0