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.
Utilisez celui installé lors de la création de l'environnement.
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()
(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.
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