2020/07/01追記
これも、VSCodeの中にいれられます。
www.agent-grow.com
【python】Google Chromeの閲覧履歴を見よ!
使うテーブルはurls(親テーブル)とvisits(子テーブル)です。それぞれ定義は次の通り。
('table', 'urls', 'urls', 4, 'CREATE TABLE urls(id INTEGER PRIMARY KEY AUTOINCREMENT,url LONGVARCHAR,title LONGVARCHAR,visit_count INTEGER DEFAULT 0 NOT NULL,typed_count INTEGER DEFAULT 0 NOT NULL,last_visit_time INTEGER NOT NULL,hidden INTEGER DEFAULT 0 NOT NULL)') ('table', 'visits', 'visits', 6, 'CREATE TABLE visits(id INTEGER PRIMARY KEY,url INTEGER NOT NULL,visit_time INTEGER NOT NULL,from_visit INTEGER,transition INTEGER DEFAULT 0 NOT NULL,segment_id INTEGER,visit_duration INTEGER DEFAULT 0 NOT NULL,incremented_omnibox_typed_score BOOLEAN DEFAULT FALSE NOT NULL)')
@@@ 以降、検討過程 @@@
◆はじめに
Chromeの閲覧履歴って、Historyというsqliteファイルに格納させているそうです。このファイルです。
'C:\Users\(ユーザ名)\AppData\Local\Google\Chrome\User Data\Default\History'
まずは解析したいので、このファイルをコピーしてきて、pythonで解析してみましょう!
◆テーブル一覧の取得
##### IMPORT import sqlite3 from contextlib import closing ##### CONST db = '.\History' ##### IMPLEMENTATION with closing(sqlite3.connect(db)) as conn: c = conn.cursor() select_sql = "select * from sqlite_master where type='table'" for row in c.execute(select_sql): print(row)
こんなテーブルがあるみたいでした。
meta, urls, sqlite_sequence, visits, visit_source, keyword_search_terms, downloads, downloads_url_chains, downloads_slices,segments, segment_usage, typed_url_sync_metadata
◆urlsを見てみよう!
こういう定義でした。
>||('table', 'urls', 'urls', 4, 'CREATE TABLE urls(id INTEGER PRIMARY KEY AUTOINCREMENT,url LONGVARCHAR,title LONGVARCHAR,visit_count INTEGER DEFAULT 0 NOT NULL,typed_count INTEGER DEFAULT 0 NOT NULL,last_visit_time INTEGER NOT NULL,hidden INTEGER DEFAULT 0 NOT NULL)')|
【python】Pandasの練習!~CSV読込・行追加・グルーピング・抽出・ソート
◆まずは、初期設定
### IMPORT import pandas as pd import glob ### Pandas設定 pd.set_option('display.max_rows', 50) ### Dataframeの作成 df = pd.DataFrame(columns=['ユーザー名','コメント','時間'])
"鈴木","こんばんわ","1800" "佐藤","おはよう","1000" "高橋","ありがとう","1100" "佐藤","どういたしまして","1200" "高橋","ごきげんよう","1030"
### CSV取り込み DIR = './' FILE = 'chat.csv' path = DIR+FILE #ここだけ改造 pc_log_list = glob.glob(path) df = pd.concat([pd.read_csv(path, header=None,names=['ユーザー名','コメント','時間'])]) df
無事、取り込めましたね!
◆行追加
こちらのサイトを参考に行追加してみます!
qiita.com
### 行追加 tmp_se = pd.Series( ['鈴木','こんにちは',1015], index=df.columns )#数字にしたいものはクォーテーションで囲まない! df = df.append( tmp_se, ignore_index=True ) df
◆グルーピング
for文をまわせるようになります。
### グルーピング grouped = df.groupby('ユーザー名') for group in grouped.groups: print(group)
◆抽出
### 抽出 # 例えば鈴木もしくは佐藤だけを抽出 dfExtract = df[(df['ユーザー名'] == '鈴木')|(df['ユーザー名'] == '佐藤')] dfExtract
無事、抽出できました。
◆ソート
### ソート dfExtract = dfExtract.sort_values(by=['時間'] , ascending=True) dfExtract
時間の昇順でソーティングできました!
【ML】時系列データ
◆まずはCRF
系列ラベリングやってみよう。
理論よりも、まずはプログラムから触ってみよう。
一つ目の記事の図表が分かりやすい。
枠の中が素性というやつですね。
【life】ドラクエ小説
凄い人がいるものだ。