Der Teil, der die gesammelten Tweet-Daten in der Datenbank speichert. Betreiben Sie MySQL von Python aus mit dem Treiber für MySQL.
Verwenden Sie die beim Erstellen der Umgebung installierte.
Der Beispielcode für die tatsächliche Verwendung sollte schneller angezeigt werden.
Sie können SQL in der angegebenen Datenbank ausführen, indem Sie die Funktion execute_sql ()
im Beispiel verwenden.
#!/usr/bin/env python
# -*-coding:utf-8-*-
import MySQLdb
### Functions
def main():
local_db = {
"host": "localhost",
"user": "root",
"passwd": "vagrant",
"db_name": "twitter_logs"
}
#DB-Erstellung
create_db(local_db)
#Tabelle erstellen
create_hashtag_serch_table(local_db)
#Datenspeicher
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"Ich möchte der Fänger des Roggenfeldes sein. Ich weiß, dass es lächerlich ist. Aber das ist das Einzige, was ich wirklich sein möchte.",
"words": u"Roggenweizen,Feld,von,Fang,Rolle,、,Eine solche,もvon,Zu,ich,Ist,Nari,Wollen,Hmm,Ist,Yo,。,Blöd,Teru,Ding,Ist,Kennt,Teru,Yo,。,Aber,、,ほHmmWannう,Zu,Nari,Wollen,もvon,Wann,Ichi,Tara,Es,Shika,Abwesend,Hallo,。",
"nouns": u"Roggenweizen,Feld,Rolle,Ding,ich,Hmm,Ding,ほHmmとう,Ding,Es",
"verbs": u"Fang,Nari,Blöd,Teru,Kennt,Teru,Nari,Ichi",
"adjs": u"Abwesend"
}
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:Ich möchte der Fänger des Roggenfeldes sein. Ich weiß, dass es lächerlich ist. Aber das ist das Einzige, was ich wirklich sein möchte.
words:Roggenweizen,Feld,von,Fang,Rolle,、,Eine solche,もvon,Zu,ich,Ist,Nari,Wollen,Hmm,Ist,Yo,。,Blöd,Teru,Ding,Ist,Kennt,Teru,Yo,。,Aber,、,ほHmmWannう,Zu,Nari,Wollen,もvon,Wann,Ichi,Tara,Es,Shika,Abwesend,Hallo,。
nouns:Roggenweizen,Feld,Rolle,Ding,ich,Hmm,Ding,ほHmmとう,Ding,Es
verbs:Fang,Nari,Blöd,Teru,Kennt,Teru,Nari,Ichi
adjs:Abwesend
1 row in set (0.00 sec)
mysql>
Ich konnte die DB-Erstellung, Tabellenerstellung und Datenspeicherung bestätigen.
Wenn Sie danach den Inhalt der bisherigen Artikel in einem Programm kombinieren und die Ein- und Ausgabe gut miteinander verbinden, Sie haben jetzt ein Basisprogramm in Python zum Sammeln von Informationen von Twitter. Im nächsten Artikel geht es darum.
Recommended Posts