Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)

Stocker les données acquises dans DB

La partie qui stocke les données de Tweet collectées dans la base de données. Faites fonctionner MySQL à partir de Python en utilisant le pilote pour MySQL.

Pilote pour MySQL

Utilisez celui installé lors de la création de l'environnement.

Exemple de code

Il devrait être plus rapide de voir l'exemple de code pour l'utilisation réelle. Vous pouvez exécuter SQL dans la base de données spécifiée en le faisant comme la fonction ʻexecute_sql () `dans l'exemple.

#!/usr/bin/env python                                                                                                                                             
# -*-coding:utf-8-*-                                                                                                                                              
import MySQLdb

### Functions                                                                                                                                                     
def main():
    local_db = {
        "host": "localhost",
        "user": "root",
        "passwd": "vagrant",
        "db_name": "twitter_logs"
        }

    #Création de DB
    create_db(local_db)

    #Créer une table
    create_hashtag_serch_table(local_db)

    #Magasin de données
    hashtag_search_dict = {
        "tweet_id": u"10000000001",
        "datetime": u"2014-11-09 18:05:42",
        "user_id": u"123456789",
        "user_name": u"salinger",
        "display_name": u"J.D. Salinger",
        "search_hashtag": u"#salinger",
        "raw_tweet": u"Je veux être le receveur du champ de seigle. Je sais que c'est ridicule. Mais c'est la seule chose que je veux vraiment être.",
        "words": u"Blé de seigle,champ,de,Capture,Rôle,、,Tel,もde,À,je,Est,Nari,Vouloir,Hmm,Est,Yo,。,Stupide,Teru,chose,Est,Connaître,Teru,Yo,。,Mais,、,ほHmmQuandう,À,Nari,Vouloir,もde,Quand,Ichi,Tara,Il,Shika,Absent,Hey,。",
        "nouns": u"Blé de seigle,champ,Rôle,chose,je,Hmm,chose,ほHmmとう,chose,Il",
        "verbs": u"Capture,Nari,Stupide,Teru,Connaître,Teru,Nari,Ichi",
        "adjs": u"Absent"
        }

    insert_into_hashtag_search(local_db, hashtag_search_dict)
    return True

def create_db(db_info):
    connector = MySQLdb.connect(
        host = db_info["host"],
        user = db_info["user"],
        passwd = db_info["passwd"],
        charset = "utf8"
        )
    cursor = connector.cursor()
    sql = u"""
    CREATE DATABASE IF NOT EXISTS                                                                                                                                 
        %s                                                                                                                                                        
    CHARACTER SET                                                                                                                                                 
        utf8                                                                                                                                                      
    ;                                                                                                                                                             
    """ %(db_info["db_name"])
    cursor.execute(sql)
    connector.commit()
    cursor.close()
    connector.close()
    return True

def execute_sql(sql, db_info, is_commit = False):
    connector = MySQLdb.connect(
        host = db_info["host"],
        user = db_info["user"],
        passwd = db_info["passwd"],
        db = db_info["db_name"],
        charset = "utf8"
        )
    cursor = connector.cursor()
    cursor.execute(sql)
    if is_commit:
        connector.commit()
    cursor.close()
    connector.close()
    return True

def create_hashtag_serch_table(db_info):
    sql = """                                                                                                                                                     
    CREATE TABLE IF NOT EXISTS                                                                                                                                    
        hashtag_search(                                                                                                                                           
            id BIGINT PRIMARY KEY AUTO_INCREMENT,                                                                                                                 
            tweet_id BIGINT,                                                                                                                                      
            datetime DATETIME,                                                                                                                                    
            user_id BIGINT,                                                                                                                                       
            user_name VARCHAR(50),                                                                                                                                
            display_name VARCHAR(50),                                                                                                                             
            search_hashtag VARCHAR(140),                                                                                                                          
            raw_tweet TEXT,                                                                                                                                       
            words TEXT,                                                                                                                                           
            nouns TEXT,                                                                                                                                           
            verbs TEXT,                                                                                                                                           
            adjs TEXT                                                                                                                                             
        )                                                                                                                                                         
    ;                                                                                                                                                             
    """
    execute_sql(sql, db_info, is_commit = True)
    return True

def insert_into_hashtag_search(db_info, hashtag_search_dict):
    sql = """                                                                                                                                                     
    INSERT INTO                                                                                                                                                   
        hashtag_search                                                                                                                                            
    VALUES(                                                                                                                                                       
        NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'                                                                                    
        )                                                                                                                                                         
    ;                                                                                                                         
    """ %(
        hashtag_search_dict["tweet_id"],
        hashtag_search_dict["datetime"],
        hashtag_search_dict["user_id"],
        hashtag_search_dict["user_name"],
        hashtag_search_dict["display_name"],
        hashtag_search_dict["search_hashtag"],
        hashtag_search_dict["raw_tweet"],
        hashtag_search_dict["words"],
        hashtag_search_dict["nouns"],
        hashtag_search_dict["verbs"],
        hashtag_search_dict["adjs"]
        )
    execute_sql(sql, db_info, is_commit = True)
    return True


### Execute                                                                                                                                                       
if __name__ == "__main__":
    main()

Contrôle de fonctionnement

(twi-py) $ python mysql_tools.py
(twi-py) $ mysql -u root -pvagrant twitter_logs
mysql> SHOW tables;
+------------------------+
| Tables_in_twitter_logs |
+------------------------+
| hashtag_search         |
+------------------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM hashtag_search\G
*************************** 1. row ***************************
            id: 1
      tweet_id: 10000000001
      datetime: 2014-11-09 18:05:42
       user_id: 123456789
     user_name: salinger
  display_name: J.D. Salinger
search_hashtag: #salinger
     raw_tweet:Je veux être le receveur du champ de seigle. Je sais que c'est ridicule. Mais c'est la seule chose que je veux vraiment être.
         words:Blé de seigle,champ,de,Capture,Rôle,、,Tel,もde,À,je,Est,Nari,Vouloir,Hmm,Est,Yo,。,Stupide,Teru,chose,Est,Connaître,Teru,Yo,。,Mais,、,ほHmmQuandう,À,Nari,Vouloir,もde,Quand,Ichi,Tara,Il,Shika,Absent,Hey,。
         nouns:Blé de seigle,champ,Rôle,chose,je,Hmm,chose,ほHmmとう,chose,Il
         verbs:Capture,Nari,Stupide,Teru,Connaître,Teru,Nari,Ichi
          adjs:Absent
1 row in set (0.00 sec)
mysql>

J'ai pu confirmer la création de la base de données, la création de la table et le stockage des données.

finalement

Après cela, si vous combinez le contenu des articles jusqu'à présent dans un seul programme et connectez bien l'entrée et la sortie de l'autre, Vous disposez maintenant d'un programme de base pour collecter des informations de Twitter en Python. Dans le prochain article, c'est à peu près tout.

Recommended Posts

Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Collecter des informations sur Twitter avec Python (API Twitter)
Collecter des informations depuis Twitter avec Python (construction de l'environnement)
Collecte d'informations sur Twitter avec Python (analyse morphologique avec MeCab)
Recevoir des données textuelles de mysql avec python
Tweet de python avec Twitter Developer + Tweepy
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (5. Entropie des informations)
Récupération des informations sur l'écriture, la composition et l'arrangement du site Tower Records avec Python
Touchez MySQL depuis Python 3
Collecter des tweets avec Python
Utilisez MySQL depuis Python
Utiliser MySQL depuis Python
Suivi automatique sur Twitter avec python et sélénium! (RPA)
Exploration avec Python et Twitter API 1 - Fonction de recherche simple
Recevoir des e-mails de Gmail et étiqueter avec Python3
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
[Bases de la science des données] Collecte de données depuis RSS avec python
Programmation avec Python et Tkinter
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
Mémo graphique Twitter avec Python
Obtenez la chronologie Twitter avec Python
Utiliser l'API Twitter avec Python
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
Informations obtenues à partir de tweet_id (Python)
Lancez l'émulateur Cloud Datastore avec docker-compose et travaillez avec l'application Python
Utiliser MySQL depuis Anaconda (python)
J'ai essayé la gestion du suivi avec l'API Twitter et Python (facile)
Rationalisez la collecte d'informations avec l'API Twitter et les robots Slack
Hash avec python et échapper à l'égosa d'un certain ministre
python avec pyenv et venv
Les moteurs de recherche fonctionnent avec python
[Python x Zapier] Obtenez des informations d'alerte et notifiez avec Slack
Avec skype, notifiez avec skype de python!
Obtenez des informations sur l'alambic avec Python
Fonctionne avec Python et R
Regroupement de connexions avec Python + MySQL
Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs
Extraire le texte du pdf [python] et lire les caractères à haute voix avec Open-Jtalk
Essayez d'afficher la carte google et la carte géographique avec python
Utilisez Firefox avec Selenium depuis python et enregistrez la capture d'écran
Extraire des tables de base de données avec CSV [connexion ODBC de R et python]
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Robot fonctionnant avec Arduino et python
Appeler C depuis Python avec DragonFFI
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
Utilisation de Rstan de Python avec PypeR
Python, rendement, retour et parfois rendement de
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Construire un environnement Mysql + Python avec docker
Lire et utiliser des fichiers Python à partir de Python