Passer au contenu

Comment récupérer les données Reddit en 2024 : le guide ultime

Salut! Cherchez-vous à exploiter la richesse des données publiques de Reddit en 2024 ?

Avec plus de 50 millions d'utilisateurs actifs quotidiens, Reddit est une mine d'or pour les informations sur les consommateurs, l'analyse des tendances, les études de marché, les ensembles de données d'apprentissage automatique, et bien plus encore.

Mais les limites strictes de l'API de Reddit rendent la collecte de grands ensembles de données un défi.

Dans ce guide ultime de plus de 4500 XNUMX mots, vous apprendrez comment récupérer efficacement et légalement de grandes quantités de données Reddit cette année à l'aide de proxys de web scraping.

Allons-y !

Qu’est-ce que Reddit et pourquoi devriez-vous le supprimer ?

Pour ceux qui découvrent Reddit, il s’agit de l’une des plus grandes plateformes sociales et sites de discussion du Web.

Les utilisateurs de Reddit, appelés « Redditors », peuvent soumettre des messages texte, des liens, des images et des vidéos sur le site. Ce contenu généré par les utilisateurs est organisé en communautés thématiques spécifiques appelées « subreddits » dédiées aux jeux, à la musique, aux sports, aux animaux de compagnie – etc.

Depuis 2024, Reddit compte plus de 430 millions d'utilisateurs actifs mensuels et est classé comme le 19ème site Web le plus visité au monde.

Avec cette vaste audience engagée, Reddit offre une quantité inégalée de données sur les consommateurs aux chercheurs et aux analystes, notamment :

  • Sujets tendances et viraux
  • Avis et retours des consommateurs
  • Réactions opportunes aux événements d'actualité
  • Connaissance de passe-temps de niche
  • Mèmes, vidéos et images créatifs
  • Références culturelles émergentes et argot

Par exemple, les analystes pourraient utiliser les données Reddit pour :

  • Obtenez des informations sur le marché en analysant les réceptions de produits
  • Prédire les évolutions des actions en fonction des discussions des investisseurs
  • Entraîner des modèles d'IA à l'aide d'ensembles de données de catégorisation
  • Identifiez les termes et sujets de recherche en hausse

Les journalistes recherchent fréquemment des idées de contenu et des interviewés à partir de fils de discussion populaires sur Reddit. La profondeur et la nature en temps réel des discussions sur Reddit fournissent des informations inestimables sur les consommateurs et la culture.

En termes simples, Reddit donne une idée de ce qui divertit, provoque et capte l'attention sur Internet. Exploiter sa richesse de données publiques peut donner à votre entreprise, à vos recherches ou à vos rapports un avantage critique.

Mais l’API de Reddit rend la collecte de grands ensembles de données difficile…

Les limites de l'API de Reddit pour la collecte de données

Reddit fournit une API RESTful officielle pour interagir avec les données Reddit par programmation. Il permet d'obtenir facilement des données telles que :

  • Publier des annonces à partir de subreddits
  • Sujets de commentaires
  • Des profils d'utilisateurs
  • Resultats          de          la          recherche

Il permet également de publier, de voter, de gérer les subreddits et bien plus encore. Bon!

Cependant, cette API a une limitation de débit stricte, sauf si vous postulez pour un niveau d'accès supérieur :

  • Demandes anonymes se limitent à seulement 60 requêtes par minute
  • Demandes authentifiées avoir un plafond de 30 requêtes par minute, avec certaines méthodes encore plus restreintes

De plus, Reddit interdit le scraping « excessif et automatisé » via son API. Vous êtes uniquement autorisé à effectuer des requêtes API contextuelles pour améliorer l'expérience Reddit.

Cela signifie que la collecte de grands ensembles de données ou l’exploration de textes/médias pour l’apprentissage automatique sont exclues.

L'API est idéale pour créer des clients et des robots Reddit, mais son utilisation est limitée pour les chercheurs ayant besoin de dizaines de milliers de publications.

Scraper Reddit avec un script Python personnalisé

C'est là que grattage web Le web scraping implique l'utilisation d'un script Python pour télécharger les pages Web publiques de Reddit et extraire les données dont vous avez besoin.

Le principal avantage du web scraping Reddit est le contrôle : avec les bons outils, vous pouvez gratter n'importe quelle page publique à l'échelle souhaitée, sans limites de débit restrictives.

Passons en revue un simple script de grattage Reddit pour démontrer le processus.

Nous allons d'abord importer la bibliothèque de requêtes pour télécharger les pages, et Beautiful Soup pour analyser le HTML :

import requests
from bs4 import BeautifulSoup

Ensuite, nous définirons le subreddit à gratter et demanderons la page :

subreddit = "learnpython"
response = requests.get(f"https://www.reddit.com/r/{subreddit}/") 

Nous pouvons maintenant analyser la page HTML en utilisant Beautiful Soup :

soup = BeautifulSoup(response.text, ‘html.parser‘)

Et extrayons les données que nous voulons – récupérons les titres des articles, les scores et les noms d'utilisateur :

for post in soup.find_all(‘div‘, class_=‘Post‘):

  title = post.find(‘h3‘).text
  score = post.find(‘div‘, class_=‘score‘).text 
  user = post.find(‘a‘, class_=‘author‘).text

  print(title, score, user)

Cela imprimera une liste de titres, de partitions et d'auteurs pour chaque article.

Pour paginer sur plusieurs pages, nous recherchons l'URL "suivante" sur chaque page et appelons récursivement notre fonction.

Nous pouvons également ajouter le multithreading, le stockage de base de données, une gestion robuste des exceptions et une logique d'analyse plus avancée. Mais ce script simple démontre les fondements du web scraping Reddit avec Python.

Quelques avantages clés du web scraping Reddit par rapport à l'utilisation de l'API :

  • Aucune limitation de taux – Grattez autant de pages que vous le souhaitez
  • Accès complet aux données – Grattez n’importe quelle page publique ou subreddit
  • Mettre à l'échelle les ensembles de données – Collectez des millions de messages si vous le souhaitez
  • Évitez les restrictions – Contourner les limites de l'API en matière d'utilisation commerciale et d'apprentissage automatique

Le défi consiste désormais à gratter à grande échelle sans détection…

Accéder à Reddit via des proxys

Pour extraire de grandes quantités de données de Reddit, vous devrez utiliser des proxys.

Reddit bloque et interdit activement les adresses IP qui envoient trop de requêtes et trop rapidement. Les proxys vous permettent d'acheminer votre trafic via plusieurs adresses IP pour éviter cela.

Procurations résidentielles sont le meilleur choix pour le scraping Reddit, car ils fournissent des milliers de véritables adresses IP résidentielles provenant de réseaux domestiques classiques, et non de centres de données.

Cela imite le trafic humain organique.

En revanche, proxy de centre de données proposent moins d'adresses IP, provenant principalement de batteries de serveurs, qui sont facilement signalées.

Choisir les meilleurs proxys résidentiels

Lors de la sélection d'un fournisseur de proxy résidentiel, vous souhaiterez rechercher :

  • Grands pools de proxy – Plus de 10,000 XNUMX adresses IP résidentielles pour maintenir la diversité
  • Prise en charge HTTP/HTTPS – Reddit nécessite des connexions HTTPS
  • Vitesses élevées – Recherchez des vitesses de 150 à 1000 XNUMX ms
  • 95 %+ de disponibilité – Évitez les échecs des proxys morts
  • Bande passante illimitée – Ne vous inquiétez pas des limites de données
  • Rotation de la connexion arrière – La rotation des proxys avec backconnect permet d'éviter les interdictions en redémarrant les proxys morts
  • Séances collantes – Utilisez le même proxy pour toutes les demandes de page afin de maintenir l’état de connexion

Meilleurs services proxy résidentiels recommandés pour le scraping Reddit sur la base de ces critères incluent :

ProviderIPVitesseTaux de réussitede mot de passeHTTPS
Données lumineuses72,000+150-650ms99%OuiOui
GéoSurf40,000+400-1000ms97%OuiOui
Proxy intelligent10,000+200-400ms98%OuiOui
Luminati35,000+150-650ms99%OuiOui

La plupart proposent des essais de 3 à 7 jours pour tester les performances avant d'acheter des forfaits mensuels adaptés à vos besoins de scraping.

Avec suffisamment de proxys résidentiels de qualité, vous pouvez accéder à Reddit à grande échelle pour créer des ensembles de données volumineux et puissants.

Stockage, analyse et reporting sur les données Reddit

Une fois que vous aurez créé un scraper Reddit fonctionnel, vous souhaiterez stocker, analyser et créer des rapports sur vos nouveaux ensembles de données !

Pour les ensembles de données plus petits, l'exportation directement vers des fichiers JSON ou CSV fonctionne très bien.

Pour les grands ensembles de données, stockez les données dans une base de données de production telle que PostgreSQL or MongoDB. Vous pouvez utiliser un ORM Python comme SQLAlchimie or PyMongoName pour interfacer efficacement le scraper avec la base de données.

Exemple d'architecture pour un scraper Reddit à grande échelle

Pour l'analyse et la création de rapports, les outils Python populaires incluent :

  • Pandas pour nettoyer, transformer et fusionner de grands ensembles de données Reddit
  • NumPy pour l'analyse numérique et le calcul de statistiques descriptives
  • matplotlib ainsi que marin pour visualiser les tendances et les relations des données à travers des tracés, des diagrammes et des graphiques
  • SpaCy pour un traitement du langage naturel de pointe pour analyser le texte Reddit
  • Scikit-apprendre pour entraîner des modèles d'apprentissage automatique sur les données Reddit pour les tâches de prédiction et de classification
  • Gensim pour la modélisation de sujets afin de découvrir des sujets de discussion et des tendances
  • Tableau pour créer des tableaux de bord et des rapports interactifs de business intelligence

Par exemple, vous pouvez utiliser Pandas pour analyser la croissance des subreddit au fil du temps :

import pandas as pd

posts = pd.read_json(‘subreddit_posts.json‘)

growth = posts.groupby(‘date‘)[‘score‘].count()  
growth.plot()

Cela charge les données Reddit, les regroupe par date et trace le nombre de publications au fil du temps, ce qui nous permet de visualiser les tendances de croissance.

La myriade de données textuelles sur Reddit le rend également parfait pour l'analyse PNL, comme l'identification de sujets tendances avec l'allocation de Dirichlet latent (LDA) :

import spacy
from sklearn.decomposition import LatentDirichletAllocation

nlp = spacy.load(‘en‘)

# Load data and vectorize text
texts = [...]
docs = [nlp(text) for text in texts]
X = [[token.vector for token in doc if not token.is_stop] for doc in docs]

# Train LDA model
lda = LatentDirichletAllocation()  
lda.fit(X)

# View frequent topics
for topic_id, terms in lda.top_topics(docs, num_words=5):
  print(topic_id, [nlp.vocab[word_id].text for word_id in terms])

Cela charge les données texte, les vectorise avec spaCy, entraîne un modèle LDA et imprime les 5 principaux termes pour chaque sujet, vous permettant d'extraire les thèmes clés.

Les opportunités d’analyse sont vastes – alors commencez tôt à visualiser et à modéliser pour tirer des informations de vos données Reddit récupérées !

Bien que les données publiques Reddit soient un jeu équitable, il existe certaines directives juridiques et facteurs éthiques à prendre en compte :

  • Grattez uniquement les pages Reddit publiques – N’essayez jamais d’accéder aux profils ou sous-reddits privés Reddit.
  • Utiliser les délais entre les demandes – Insérez des délais de 3 à 5 secondes entre les demandes de page pour éviter de surcharger les serveurs.
  • Grattez à des volumes raisonnables – Créez des ensembles de données suffisamment volumineux pour vos besoins, mais n’en faites pas trop.
  • Respecter les CGU – Assurez-vous que votre scraping est conforme aux conditions d’utilisation et à l’accord du développeur de Reddit.
  • Anonymiser les noms d'utilisateur – Supprimez toutes les informations personnellement identifiables telles que les noms d’utilisateur de vos ensembles de données.
  • Sécurisez les données – Stockez et transférez les données Reddit en toute sécurité pour respecter la confidentialité.
  • Ne recréez pas les utilisateurs – N'utilisez pas les données Reddit pour former une IA qui imite de vrais utilisateurs.

Le stockage éthique de données publiques anonymisées sur les réseaux sociaux à des fins de recherche est généralement légalement autorisé aux États-Unis en vertu de précédents d'utilisation équitable. Consultez toujours un avocat pour obtenir des conseils juridiques.

En suivant ces bonnes pratiques, vous pouvez accéder au trésor de données publiques de Reddit tout en respectant le bien-être de ses utilisateurs et de sa communauté.

Commençons à gratter Reddit !

Ouf, ça faisait beaucoup d’informations à digérer !

Voici un bref récapitulatif de ce que nous avons appris :

  • Reddit est une mine d'or de données sur les consommateurs et la culture
  • L'API Reddit a des limites strictes sur l'accès aux données
  • Le web scraping offre plus de contrôle pour créer de grands ensembles de données
  • Les proxys résidentiels sont cruciaux pour le scraping anonyme
  • Des outils Python utiles existent pour l'analyse et la modélisation des données
  • Suivez les directives éthiques pour supprimer Reddit de manière responsable

Vous disposez désormais d'un guide complet pour récupérer efficacement et légalement de grandes quantités de données Reddit en 2024.

Il est donc temps de mettre vos compétences à l'épreuve !

Choisissez des sous-reddits intéressants, lancez votre script Python, créez un proxy et commencez à exploiter Reddit pour obtenir des informations qui vous donneront un avantage.

La communauté veut savoir ce que vous découvrez !

Grattons 🙂

Prendre part à la conversation

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *