Blockiert reddit einen HttpClient nach zu vielen Anfragen?
Guten Morgen.
Ich hab einen discord bot geschrieben mit der Funktion Content von Reddit zu ziehen.
Vor ca. 3 Wochen als ich ihn das letzte Mal an hatte, hat noch alles funktioniert.
Mittlerweile bekomme ich diese Exception:
Error: Response status code does not indicate success: 403 (Blocked).
Das Blocken der IP ist unwahrscheinlich, da ich es mit einem VPN und von einem anderen physikalischem Standort ausprobiert habe.
Bei der zweiten Zeile flieg ich raus:
var client = new HttpClient();
var result = await client.GetStringAsync($"https://reddit.com/r/{subreddit ?? "dankmemes"}/random.json?limit=1");
Hat jemand 'ne Ahnung woran das liegt? Meistens wird der Command ziemlich gespammt...
Vllt liegt das daran und da wurde iwas gesperrt?
Vllt kennt ihr aber auch eine bessere Möglichkeit das ganze umzusetzen?
Danke im Voraus!
"Kompletter" Code:
var client = new HttpClient();
var result = await client.GetStringAsync($"https://reddit.com/r/{subreddit ?? "dankmemes"}/random.json?limit=1");
if (!result.StartsWith("["))
{
await Context.Channel.SendMessageAsync("Subreddit doesn't exist...");
return;
}
JArray arr = JArray.Parse(result);
JObject post = JObject.Parse(arr[0]["data"]["children"][0]["data"].ToString());
var builder = new EmbedBuilder()
.WithImageUrl(post["url"].ToString())
.WithColor(new Color(0, 0, 255))
.WithTitle(post["title"].ToString())
.WithUrl("https://reddit.com/" + post["permalink"].ToString())
.WithFooter($"🗨 {post["num_comments"]} ⬆️ {post["ups"]}");
var embed = builder.Build();
await Context.Channel.SendMessageAsync(null, false, embed);
2 Antworten
Schau in die Reddit API Dokumentation nach Rate Limits und den Error Codes.
Aber ja klar, wenn du die Rate Limits nicht einhälst oder nicht die offizielle API nutzt werden deine Anfragen geblockt.
Das macht jede vernünftige Seite.
Ich seh ja nicht die Fehlermeldung. Aber es ist klar, dass das auffällt, wenn Du von einer IP aus signifikant Content automatisiert ziehst. Und das wird dann eventuell gesperrt, oder es gibt ein Rate Limit oder oder.
Normalerweise ist das Scraping laut AGB verboten, da es Seiten in die Knie zwingen kann.
Die sind wahrscheinlich nicht ganz doof und kennen VPNs.
Das Blocken der IP ist unwahrscheinlich, da ich es mit einem VPN und von einem anderen physikalischem Standort ausprobiert habe.