Je souhaite obtenir des données de différents sous-reddit reddit. Est-ce que quelqu'un sait s'il existe une API reddit/autre similaire à celle de Twitter pour explorer toutes les pages?
Oui, reddit possède une API qui peut être utilisée à diverses fins telles que la collecte de données, les robots de commentaires automatiques, ou même pour aider à la modération des sous-titres.
Il y a quelques endroits pour découvrir des informations sur l'API de reddit:
S'il existe un langage de programmation particulier que vous connaissez déjà, vous devriez consulter le ensemble existant de wrappers API pour différents langages. Malgré mon parti pris (je suis le mainteneur du paquet), je suis tout à fait certain PRAW , pour python, prend en charge le plus grand nombre de fonctionnalités de l'API reddit.
Notez que si vous ne lisez que des données et que vous n'êtes pas intéressé à publier sur reddit, vous pouvez obtenir pas mal de données à partir des flux json associés à chaque subreddit. Avec cette méthode, vous n'avez pas du tout à vous soucier d'une API - il vous suffit de demander le fichier json correspondant et de l'analyser dans la langue de votre choix.
Voici un exemple d'URL qui renverra un objet json contenant les messages chauds du sous-programme Justrolledintotheshop: https://www.reddit.com/r/Justrolledintotheshop/top.json
À la place de top, vous pouvez utiliser hot
, new
ou controversial
. Lorsque vous utilisez top, vous pouvez ajouter ?t=day
à la fin de l'URL pour spécifier le premier message de la journée. Les autres valeurs valides sont hour
, day
, week
, month
, year
ou all
.
Pour analyser les données JSON de reddit avec ajax/javascript .
Reddit a [~ # ~] cors [~ # ~] activé pour les requêtes GET.
Ici à titre d'exemple, analysez les dernières vidéos de reddit au format JSON:
xhr = new XMLHttpRequest
xhr.open("GET","https://www.reddit.com/r/videos/.json",true)
xhr.send(null)
xhr.onreadystatechange = function() {
if(this.status === 200) {
console.log(JSON.parse(xhr.responseText))
}
}
https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest
Pour aller plus loin, consultez cette question: