My Tech Life

Memo by a Japanese Software Developer in his late 50s.

python

アメブロユーザのお気に入りブログと読者ブログの差分を確認するPythonスクリプト

アメブロユーザの お気に入りブログと読者ブログの差分を 確認するプログラム。 以下の行にユーザを設定する。 ameblo_user = 'XXXXXXXXXXXXXX' このスクリプトは、 指定されたユーザーが公開している、 お気に入りブログと読者ブログのリンクのみを取得する…

Pythonでメールを週ごとに配列にまとめる

データ分析する時に、 どの単位でデータをまとめるか。 メールの一括収集でできるデータ分析を している最中ですが、 週ごとにメールをまとめるのが よさそうでした。 これはサンプル。 dataは2次元配列として準備、 1要素目が日付、 2要素目が本文のサンプ…

PythonのWebスクレイピング時に日本語で「Windows-1254」デコードエラー

UTF-8のテキストをデコードする時に、 Windows-1254と判定され、文字化けする現象。 detect_enc = chardet.detect(temp)['encoding'] 仕方ないので、条件分岐をひとつ増やして対応。 elif detect_enc == 'Windows-1254': detect_enc = 'utf-8' html_content …

Pythonテキスト分析前準備チャート

こんな流れで読み込んでいけばいいと思います。 TextAnalyzerまで到達すれば、あとは各種分析が実施可能です。

ブラウザとPythonを連携させてWebスクレイピング例

以前、urllibを使ったWebスクレイピング例を投稿したが、 セッションがあると、扱うのが難しくなってくる。 Seleniumを使って、ブラウザを利用すると、 セッションが扱いやすくなる。 以下サンプルでは、 xpath_listに、URL、XPATH、検索文字列、を設定する…

pythonでメールを一括取得する(さらに改善版)

前回のメール逐次取得版をモジュール化しました。 今回は、メッセージの取得だけに特化し、 デコード処理やコンテンツ処理は省略しました。 それらの処理が必要な場合は、メイン処理側で対応すること。 モジュールのドキュメンテーションも追加。 以下のコー…

pythonで.mboxを読む(改善版)

通常のmailbox取得では、ファイルの全体をパース指定するようで、 とても時間がかかることは以前の記事に書いた。 import mailbox mbox = mailbox.mbox('example.mbox') for message in mbox: print("Subject:", message['subject']) mbox.close() 逐次的に…

Webスクレイピング

Webスクレイピングで、 たくさんのデータを独自に収集して、 収集を自動化したい。 一番大事なのは、 サイト側がWebスクレイピングを許可しているかどうか。 サイトの ルートディレクトリにある 「robots.txt」の中身を見てみることで分かる。 https://www.y…

特定のメールの語句の出現頻度を集計する

同じフォルダに「category_social.mbox」があると仮定して、 タイトルにワード「フォロー」が含まれているメールのみ、 CountVectorizerで語句の出現頻度を集計するPythonスクリプトです。 AIや機械学習処理の前準備になる部分です。 今回はメール読み込みで…

Pythonで日本語分析。分かち書きした語句のカウント

Pythonでテキスト分析する時に最低限必要な前処理を記載します。 ・テキストを読み込む ・分かち書きする ・分かち書きした語句をカウントする 以下サンプルです。 まずは、データの準備です。 Wikipedia日本語版のページを参照し、 test_dir/isaac_asimov_w…

Pythonで日本語処理ー分かち書き

Pythonで自然言語処理を行うにあたり、 ブログの諸先輩方から知恵を借りて、 Mecabで分かち書きする処理を作成。 この記事の末尾にソースを貼り付けておく。 このブログでの注意点として「self.tagger.parse("")」を追加。 これがないと、不定値の解析結果が…

'cp932' codec can't encode character '\x##' in position ####: illegal multibyte sequence

'cp932' codec can't encode character '\xa9' in position 3337: illegal multibyte sequence Windowsで、Pythonを動かすとよく見る例外。Linuxだと見ない。 エンコード・デコードの深みを調査する前に、これを確認すること。 自分への備忘録。 スタックト…

メールヘッダーのデコード

メールヘッダーのデコード部分の備忘録。 送信元を例に。 from email.header import decode_header decoded = decode_header(message['from']) outstr = decoded[0][0].decode(decoded[0][1]) # 例)decoded[0][0] # b'LinkedIn\xe3\x82\xb3\xe3\x83\xb3\xe3…

pythonでmboxを読む

物忘れが多く、今後の備忘録を書くためにブログを開設。 ここ10年ぐらいのメールがGmailにたまっている。 ほとんど広告やニュースレターだが、これだけたくさん溜まっていると、 時代ごとに何か面白い傾向でも見つかるかと、Pythonで分析したく思った。 Gmai…