[PYTHON] Peut-être que vous pouvez gratter en utilisant Twitter Scraper

Il devient difficile de préparer l'API Twitter par vous-même, mais je pense que vous voudrez peut-être gratter Twitter. Il existe (probablement) une bibliothèque Python appelée Twitter Scraper dans OSS.

introduction

Twitter n'autorise pas le grattage sans le consentement préalable de Twitter. Par conséquent, cet article est un article imaginaire qui peut être utilisé comme ceci. (Je vais mettre en place une ligne préventive)

(iii) Accès au Service par tout autre moyen (automatiquement ou non) sans passer par notre interface publique actuellement disponible fournie par Twitter (et sous réserve des conditions d'utilisation applicables). Ou effectuez la recherche, ou essayez d'accéder ou de rechercher. Cependant, ce n'est pas le cas si un contrat séparé avec Twitter permet spécifiquement de le faire (Remarque: l'exploration du service est autorisée comme l'exige le fichier robots.txt. Le raclage du Service sans le consentement préalable de Twitter est expressément interdit). https://twitter.com/ja/tos/previous/version_9

Ceux qui voient cela et essaient de l'utiliser sont à leurs propres risques.

Chose que tu veux faire

Aikatsu en parade dans le numéro d'octobre 2019 de Comptique! Un article spécial a été publié. Parmi eux, il y a un plan appelé "Aikatsu on Parade Emergency Reader Questionnaire", et un questionnaire a été réalisé sur Twitter pendant une courte période de 18h00 le 23 août 2019 à 17h59 le 25 août 2019. J'ai fait.

Je voulais le faire si je pouvais l'utiliser comme une collection de réponses au questionnaire.

la mise en oeuvre

from twitterscraper import query_tweets
import datetime as dt
import pandas as pd


# input
begin_date = dt.date(2019,8,23)
end_date = dt.date(2019,9,1)
pool_size = (end_date - begin_date).days

#Collecter des tweets
tweets = query_tweets("#Questionnaire sur les côtelettes des yeux", begindate=begin_date, enddate=end_date, poolsize=pool_size, lang="ja")

tuple_tweet=[(tweet.user_id, tweet.text.replace("\n","\t"), tweet.timestamp) for tweet in tweets]
#Puisque le tweet est dupliqué, supprimez-le
df = pd.DataFrame(set(tuple_tweet), columns=['user_id', 'tweet', 'post'])

df.sort_values('post').reset_index(drop=True)

Étant donné que les informations que je veux ne sont que le contenu du tweet, les noms d'utilisateur inutiles et le nombre de retweets sont supprimés.

Étant donné que le travail de mise en forme est nécessaire comme prétraitement par la suite, les sauts de ligne sont remplacés par des délimiteurs de tabulation pour faciliter le travail.

Notez que Twitter Scraper dupliquera les enregistrements si vous essayez simplement de les traiter. (À première vue, il ne semble pas que les périodes de «begindate» et «enddate »puissent être dupliquées, mais je ne connais pas les détails.) Par conséquent, les doublons sont supprimés avec set.

Je n'étais pas sûr non plus de poolsize, mais d'après ce que je peux voir du traitement interne, il est nécessaire de définir la période de depuis et jusqu'à, et la valeur par défaut est 20, donc si vous utilisez la valeur par défaut telle quelle, les données du jour même seront générées. Fin: définit la date de début.

finalement

"Aikatsu à la parade! "Est ** Système TV Tokyo tous les samedis à partir de 10h30 BS Tele East Tous les lundis à partir de 17 h ** Est maintenant en ondes!

De plus, les résultats de l'analyse sont publiés sur le blog Hatena, donc si vous êtes intéressé, veuillez également le consulter.

Quels sont les personnages populaires de la série "Aikatsu!" Sur un total de 816 votes

Découvrez les 30 épisodes les plus populaires de la série «Aikatsu!» Sur un total de 1036 votes

Recommended Posts

Peut-être que vous pouvez gratter en utilisant Twitter Scraper
Rechercher sur Twitter avec Python
Analysez la réponse pour pouvoir gratter la propre histoire de Wantedly