Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation.
Gratter du HTML peut être fastidieux, alors assurez-vous de comprendre ce processus avec un peu de pratique Python.
Twitter est l'une des plateformes de médias sociaux les plus influentes qui aient jamais existé. Des millions de personnes, y compris des politiciens de haut niveau, des célébrités et des PDG, utilisent la plateforme pour partager leurs pensées chaque jour.
L'onglet tendance est l'un des meilleurs endroits pour découvrir les nouvelles en temps réel et le sentiment des médias sociaux. Vous pouvez analyser et utiliser ces données pour planifier des publicités de marque, exécuter des campagnes et augmenter les ventes par plis. Mais comment obtenir les dix hashtags les plus tendances sur Twitter ?
Le processus de construction d'algorithmes
La première étape de la création d'un programme consiste à noter et à comprendre les étapes nécessaires à la création d'un scraper Twitter. Ils sont:
- Ouvrez GoogleChrome.
- Visitez la page des tendances de Twitter.
- Rassemblez les hashtags et leur lien de page respectif.
- Enregistrez les données dans une feuille de calcul.
Cela sert d'algorithme de l'énoncé du problème.
Comprendre la page Web Twitter
Vous devez savoir comment une page Web marque ses données avant de pouvoir les extraire. Cela aide beaucoup si vous avez une bonne compréhension de les bases du HTML et CSS.
Suivez ces étapes pour déterminer comment Twitter représente un hashtag tendance et son URL :
- Visite La page tendance de Twitter. Vous pouvez également naviguer vers Twitter.com → Explorer → Tendance pour le voir.
- Inspectez la colonne principale à l'aide des outils de développement Chrome. Aller à Menu (3 points)>Plus d'outils >Outils de développement et placez l'outil de sélection d'éléments sur la zone de tendance.
- La chronologie des tendances est un div avec un label-aria attribut dont la valeur est "Chronologie: Explorer". Survolez le balisage dans le Éléments panneau pour mieux comprendre la structure de la page. Un autre div stocke le hashtag/sujet tendance. Utilisez cette div comme compteur et parcourez toutes les divs de la page contenant le sujet/hashtag tendance. Le contenu est stocké dans un portée ou quelques éléments de portée. Observez l'onglet ouvert et notez la hiérarchie. Vous pouvez l'utiliser pour construire une expression XPath. L'expression XPath pour cet élément spécifique est :
Itérer et cibler div[3], div[4], div[5], etc. Pour les dix meilleurs hashtags, le compteur va de 3 à 13. Le XPath généralisé devient :'//div[@aria-label="Chronologie: Explorer"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/étendue[1]'
//div[@aria-label="Chronologie: Explorer"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/étendue[1]'
- Cliquez sur n'importe quel hashtag pour comprendre l'URL de ses pages. Si vous comparez les URL, vous devriez remarquer que seul le paramètre de requête change pour correspondre au nom du hashtag. Vous pouvez utiliser cet aperçu pour créer des URL sans les extraire.
Ce projet utilise les modules et outils Python suivants :
1. Module Pandas
Tu peux utiliser la classe Pandas DataFrame pour stocker les hashtags et leurs liens respectifs dans un format tabulaire. Cela vous sera utile lorsqu'il s'agira d'ajouter ces contenus à un fichier CSV que vous pourrez partager en externe.
2. Module de temps
Utilisez le module Time pour ajouter un délai au programme Python afin de permettre au contenu de la page de se charger complètement. Cet exemple utilise un délai de 15 secondes, mais vous pouvez expérimenter et choisir un délai approprié à votre situation.
3. Module Sélénium
Selenium peut automatiser le processus d'interaction avec le Web. Vous pouvez l'utiliser pour contrôler une instance d'un navigateur Web, ouvrir la page des tendances et la faire défiler vers le bas. Pour installer Selenium dans votre environnement Python, ouvrez votre Terminal et exécuterpip installer le sélénium.
4. Pilote Web
Utilisez un pilote Web en combinaison avec Selenium pour interagir avec le navigateur. Il existe différents pilotes Web disponibles en fonction du navigateur que vous souhaitez automatiser. Pour cette version, utilisez le navigateur populaire Google Chrome. Pour installer le pilote Web pour Chrome :
- Vérifiez la version du navigateur que vous utilisez en visitant le Menu (3 points) > Aide>À propos de Google Chrome.
- Notez la version du navigateur; dans ce cas, c'est 106.0.5249.62.
- Allez à votre Terminal et tapez pip install chromedriver-binary==version_number:
S'il n'y a pas de version correspondante, pip vous montrera une liste de celles disponibles; choisissez celui qui se rapproche le plus de votre version chromée.pépin installer chromedriver-binaire==106.0.5249.62
Comment construire le scraper Twitter
Suivez ces étapes pour créer votre programme et obtenir des hashtags tendance en temps réel. Vous pouvez trouver le code source complet dans ce Référentiel GitHub.
- Importez les modules requis dans l'environnement Python.
# importer les modules requis
depuis sélénium importer pilote web
depuissélénium.webdriver.commun.parimporterPar
importer chromedriver_binary
importer temps
importer pandas comme pd - Créez un objet pour initialiser le ChromeDriver et lancer le navigateur Google Chrome à l'aide de pilote web. Chrome() fonction.
# ouvrir le navigateur google chrome
navigateur = pilote Web. Chrome() - Ouvrez la page de tendances de Twitter en transmettant son URL au obtenir() fonction.
# ouvrir la page des tendances de Twitter
navigateur.get('https://twitter.com/explore/tabs/trending') - Appliquez un délai pour que le contenu de la page soit entièrement chargé.
# délai de chargement du contenu de la page
temps.dormir(15) - Créez une liste vide pour stocker les hashtags et déclarez une boucle qui s'exécute de 3 à 13 pour faire correspondre la variable dans l'expression XPath d'avant.
# initialiser la liste pour stocker les sujets tendance et les hashtags
trending_topic_content=[]# collecter des sujets et des hashtags sur la page des tendances de Twitter
pour i dans l'intervalle (3,13): - Utilisez le trouver_élément() fonction et passez le sélecteur XPath pour obtenir les sujets et hashtags tendances sur Twitter :
xpath = f'//div[@aria-label="Chronologie: Explorer"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/étendue[1]'
trending_topic = browser.find_element (Par. XPATH, xpath)
trending_topic_content.ajouter(sujet tendance.texte) - Créez une liste vide pour stocker toutes les URL et déclarez une boucle qui parcourt tous les hashtags.
Utilisez l'opérateur slice pour omettre le hashtag pour créer son URL et remplacer les espaces par l'encodage URL, %20. Ajoutez les liens à la liste.# créer des URL en utilisant les hashtags collectés
URL=[]
pour moi dans trending_topic_content :si je.commencepar("#"):
je = je[1:]
URL='https://twitter.com/search? q=%23' + je + '&src=trend_click'
autre:
URL = 'https://twitter.com/search? q=' + je + '&src=trend_click'
url = url.replace("", "%20")
URL.ajouter(URL) - Créez un dictionnaire de paires clé-valeur avec des clés comme hashtags et des valeurs comme URL.
# créer un dictionnaire contenant à la fois le hashtag et les URL
dic={'Hashtag':contenu_sujet_tendance,'URL':URL} - Convertissez le dictionnaire non structuré en un DataFrame tabulaire.
# convertir le dictionnaire en dataframe dans pandas
df=pd. DataFrame (dic)
imprimer(df) - Enregistrez le DataFrame dans un fichier CSV que vous pouvez afficher dans Microsoft Excel ou traiter davantage.
# convertir la trame de données au format de valeurs séparées par des virgules sans numéros de série
df.to_csv("Twitter_HashTags.csv",indice=Faux)
Obtenez des informations précieuses à l'aide du Web Scraping
Le scraping Web est une méthode puissante pour obtenir les données souhaitées et les analyser pour prendre des décisions. Beautiful Soup est une bibliothèque impressionnante que vous pouvez installer et utiliser pour extraire des données de n'importe quel fichier HTML ou XML à l'aide de Python.
Avec cela, vous pouvez gratter Internet pour obtenir des titres d'actualités en temps réel, les prix des produits, les résultats sportifs, la valeur des actions, etc.