2017年09月23日

pyenvによるレンタルサーバー(XREA)上のPython環境構築

レンタルサーバーのxrea.com上のCGIでseabornを使いたかったのですが、今までpipでseabornをインストールしようとしてもエラーが発生していました。pyenvで環境を構築することで一時的に問題が解決しました。

「一時的」の理由は最後に乗せています……

環境構築手順

1.pyenvをgitからインストールする
> git clone https://github.com/yyuu/pyenv.git ~/.pyenv
2.下記を記載したbashrcを作成してbash上にてsourceする
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
export TMPDIR="$HOME/tmp"
export PYTHON_PATH=./
eval "$(pyenv init -)"
3.anaconda(色々なモジュールを含んだ環境パッケージ)をインストールする
pyenv install anaconda3-4.4.0

スクリプト側の対応

Flaskで構築しているCGIの場合、app.pyとindex.cgiの両方のpythonのパスをpyenvのパスにします(自分は後者を変更するのを忘れていて、はまりました)
#!/virtual/kumanabe/.pyenv/versions/anaconda3-4.4.0/bin/python
<<中略>>
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import seaborn as sns

修正後の表示

以前作成した「日経平均&個別株の騰落率グラフ生成」はmatplotlibでグラフを描画していましたが、下記の様なseabornによる描画に変わりました。

20170922_stockFlask.png


「日経平均&個別株の騰落率グラフ生成」の以前の記事は下記となります。
特定の株の証券コードを入力すると基準日からの騰落率を日経平均とともに折れ線グラフ...
というわけで、前回の説明に引き続いて日経平均&個別株の騰落率グラフ生成ページの詳...

ところがどっこい

CGIにアクセスできなくなってしまいました。おそらくanacondaの容量が1G越えのためxrea.com(フリー)の容量制限を超えてしまったためと思われます。もう少し頑張ってみたいと思います。

追記:【解決編】は下記のエントリーとなります。
【解決編】と銘打ってもXreaPlusの有料プランにしただけなのですが、一応+α...
posted by くまなべ at 20:00 | Comment(0) | TrackBack(0) | Python

2017年09月16日

VALUのカテゴリごとの詳細情報取得(Python)

最近、何かと話題のVALUですが、カテゴリーごとに情報を見てみたいと思いpythonによるCGIを作成してみました。とりあえず、完璧でなくても動いたところからデプロイしてみました。

(注:最初のURLは間違っていてCGIのページに飛びませんでした)

出来ること&使い方

1.情報を取得したいカテゴリーを選択
2.時価総額の上位の表示数を選択
3.「Show Detail」ボタンを押す
4.待つ(毎回スクレイピングをしているので数分待つこともあります)
5.指定したカテゴリーの相関グラフと時価総額の上位を表示

具体的には下記の図のような感じになります。

20170916_valu_intro.png

気が向いたら、機能追加をしてみようと思います。
posted by くまなべ at 20:00 | Comment(0) | TrackBack(0) | Python

2017年09月13日

「いらすとや」さんのWebサイトのスクレイピングで一括ダウンロード

computer_search_kensaku.png

みなさんおなじみの「いらすとや」さんですが、Pythonによる機械学習の勉強にイラストを使わせてもらいたいなーと思いました。まずは教師データが必要になるので、とりあえず画像データをスクレイピングするPythonのコードを作成しました。

コマンドと結果

コマンドの仕様としては、引数に「検索ワード」と「最大取得数」を渡すようにしました。
 > python.exe irasutoya_down.py インターネット 200

すると下記の様にひたすら画像がダウンロードされていきます。

http://4.bp.blogspot.com/-zTvzECyWEsk/VwIjHWMdszI/AAAAAAAA5e4/W_kAnVythXoHGzGO3AkgrHImS3cpvMiuQ/s800/internet_kanki_man1.png
http://4.bp.blogspot.com/-RK1r8J9kF_c/VwIjHdTzFVI/AAAAAAAA5e8/_N9Xhc0JtM0DLsHLU5eqhqxkk8lQ-aZSQ/s800/internet_kanki_man2.png
http://2.bp.blogspot.com/-llDpo-3-K7k/VwIjHt4UonI/AAAAAAAA5fA/PWpKhDKWK7IvwmC4yuyBZ8b4L4sXoZVMw/s800/internet_kanki_woman1.png
http://4.bp.blogspot.com/-IxWKND4JML8/VwIjILi7wFI/AAAAAAAA5fE/lgjzp6DwT6cVJKTZI5dOQe-AHX4hGDaYw/s800/internet_kanki_woman2.png

<<中略>>

http://2.bp.blogspot.com/-beSfKCyewTk/Udy6lPRVwhI/AAAAAAAAWI8/uNDgJL6OC3I/s800/computer_family.png
http://2.bp.blogspot.com/-KwGSRNHzsVA/UbVvOo58z5I/AAAAAAAAUsc/y2sh_GfnPQ8/s800/computer_wireless.png

フォルダにも下記のように保存されていきます。

20170916_irasutoya_0.jpg

続いて、コードになります。

続きを読む
posted by くまなべ at 08:00 | Comment(0) | TrackBack(0) | Python

2017年08月27日

「もうかる家計のつくり方」のスクレイピングで食費のチェック(Python)

嫁さんとの会話で「食費がどうしても40000円以下に出来ないのだけれど、たまにWebで30000円代の家計を見ることがあり、一般的に毎月の食費はどれくらいなのだろうか」という会話になりました。

総務省の家計調査をみても良いのですが、家計相談をしている人の食費をチェックしてみようということで横山光昭さんの「もうかる家計のそだて方」をチェックすることにしてみました。

もうかる家計のそだて方」の家計改善結果は記事中に画像でリンクされています。そのため、対象画像をスクレイピングすることにしました。

結果

作成したスクリプトを実行すると下記の様に画像がダウンロードされます。一部対象外の画像もダウンロードされていますが、手間とのトレードオフということで(^^;

171個ダウンロードされています。
20170825_kakei_0.png

各々、家計改善のデータとなっています
20170825_kakei_1.png


直接画像をリンクさせて頂きますが、下記のような画像をダウンロードしています。


ちなみに、食費の確認結果はおおむね40000円以上でした。そのため40000~50000円を目標金額として嫁さんと話をしています。

では、今回のスクリプトに続きます。

続きを読む
posted by くまなべ at 10:10 | Comment(0) | TrackBack(0) | Python

2017年08月18日

日経平均&個別株の騰落率グラフ生成(Python+matplotlib+Flask) メインコード

というわけで、前回の説明に引き続いて日経平均&個別株の騰落率グラフ生成ページの詳細スクリプトです。

BootStrapとFlaskは以前のRTチェッカー同様に使っているので、下記のような構成になっています。

StockGraphFlask
├─static
│  ├─css
│  ├─fonts
│  ├─image
│  └─js
└─templates

上記に格納されているコードの中でメインとなるものに続きます。
続きを読む
posted by くまなべ at 20:42 | Comment(0) | TrackBack(0) | Python

2017年08月16日

日経平均&個別株の騰落率グラフ生成(Python+matplotlib+Flask)

特定の株の証券コードを入力すると基準日からの騰落率を日経平均とともに折れ線グラフで表示するスクリプトをpythonで作成してみました。


また、表示した時の画面は下記のような画面になります。ちなみに毎回グラフの画像を作成しているのですが、削除していないので、適宜手動でpngファイルを削除しないといけない欠点があります。
20170816_stock_graph_0.jpg


今回、このスクリプトを作成する上で、matplotlibとfontまわりで少し引っかかったので、引っかかったポイントに続きます。

続きを読む
posted by くまなべ at 20:03 | Comment(0) | TrackBack(0) | Python

2017年08月15日

楽天BooksのISBNデータを用いてPythonによるPDFファイル名の変換

結構前に本があふれて困っているという話をしましたが、売却するのではなく手元にデータだけでも残しておきたい本は「ScanSnapとかで自分でSCANをする」or「BOOKSCANなどの業者に頼む」などの対応が必要となります。実はS1500は持っているのですがSCAN後のPDFデータのDefaultの名前は日時が割り当てられますし、BOOKSCANでもタイトル変更には追加料金がかかります。

このあたりの手間を何とかできないかなというので楽天BOOKSのデータを用いたPDFファイル名の変換になります。ちなみに注意点としてはOCRでISBNが文字化されている前提での処理となります。

実行結果

というわけで結果からですが、下記の通り、ISBNがPDF内部に見つけられて、楽天BookSのページでタイトルが見つかった本に関してはファイル名が変更されています。

実行前
20170712_python_0.jpg

実行後
20170712_python_1.jpg

ちなみにDebug用の出力は下記の通りです。
> python.exe chPdfFile.py bookdata
[Input File] : 0000.pdf [Result] ISBN:9784873113265, Title:CとGNU開発ツールによる組み込みシステムプログラミング
[Input File] : 0001.pdf [Result] ISBN information wasn't found
[Input File] : 0002.pdf [Result] ISBN:4839919844, Title:OS自作入門30日でできる!
[Input File] : 0003.pdf [Result] ISBN:9784063107937, Title:げんしけん(11)二代目の弐(アフタヌーンKC)
[Input File] : 0004.pdf [Result] ISBN:9784757521421, Title:ちょこっとヒメ(3)(ガンガンWINGコミックス)
[Input File] : 0005.pdf [Result] ISBN:9784088707211, Title:食戟のソーマ(1)(ジャンプコミックス)
続いて、環境とソースになります。

続きを読む
posted by くまなべ at 21:24 | Comment(0) | TrackBack(0) | Python

2017年08月10日

「公式RT直後のツイート」と「コメント付RT」の抜き出しscriptのBootStrap化


車輪の再発明になりますが、Pythonの勉強がてら「公式リツイート直後のツイート...

ただし、見た目がしょぼかったのでBootStrapで下記の様な画面にパワーアップさせました。その時の備忘録です。

20170808_bootstrap_0.jpg
20170808_bootstrap_1.jpg

ちなみにBootstrapとはTwitter社が開発したCSSの「フレームワーク」になります。


BootStrapのダウンロードと展開

CDNをURL指定する方法を実施してみたらうまくいかなかったので、BootStrapを自分のサーバー上に設置して実施する方法を取りました。ダウンロードはこちらからzipで実施しました。

ちなみに展開すると下記の様なディレクトリ構成になります
bootstrap
├─css
│      bootstrap-theme.css
│      bootstrap-theme.css.map
│      bootstrap-theme.min.css
│      bootstrap-theme.min.css.map
│      bootstrap.css
│      bootstrap.css.map
│      bootstrap.min.css
│      bootstrap.min.css.map


├─fonts
│      glyphicons-halflings-regular.eot
│      glyphicons-halflings-regular.svg
│      glyphicons-halflings-regular.ttf
│      glyphicons-halflings-regular.woff
│      glyphicons-halflings-regular.woff2

└─js
        bootstrap.js
        bootstrap.min.js
        npm.js

サーバー上の設置場所

最初CGI直下にBootStrapという名前で設置して失敗したのですが、FlaskでBootStrapを使うためには下記の様に設定するのが正しいようです。

CGI
├─static
│  ├─css
│  ├─fonts
│  └─js
└─templates

タグを打つ……前に入門サイトを参考にする

Googleで調べれば色々出てくるとは思いますが、自分は動画で解説を見ることが出来る下記を参考にしました。このタグを使いたいなーと思ったら動画を止めて打ち込んでいました。


ということで、実際に修正したスクリプトに続きます。

続きを読む
posted by くまなべ at 06:38 | Comment(0) | TrackBack(0) | Python

2017年08月06日

ツイートの「公式RT直後のツイート」と「コメント付RT」の抜き出し(Python+Tweepy+Flask)【環境&スクリプト編】

車輪の再発明になりますが、Pythonの勉強がてら「公式リツイート直後のツイート...

参考にしたサイト

Python+Tweepy+Flaskを用いてCGIで実施する上で下記サイトを参考にさせて頂きました。

ディレクトリ構成


RtKumaFlask
│  .htaccess…Apach用設定ファイル
│  app.py…メインスクリプト
│  index.cgi…CGIモード用ファイル

└─templates
        index.html… テンプレートファイル

続いて、環境とスクリプト関連です

続きを読む
posted by くまなべ at 08:02 | Comment(0) | TrackBack(0) | Python

2017年08月05日

ツイートの「公式RT直後のツイート」と「コメント付RT」の抜き出し(Python+Tweepy+Flask)【結果編】

車輪の再発明になりますが、Pythonの勉強がてら「公式リツイート直後のツイート」と「コメント付リツイート」を抜き出して、対象ツイートに対しての意見をざっと眺めることのできるCGIを作成しました。その結果編です。といっても自分のツイートでリツイートされているのは1つしかないのですが……。

作成したCGIはこちらになります。

使い方&その結果は下記となります。

確認したいツイートのStatusIDをメモして
20170805_python_0.jpg

CGIの入力フォームにStatusIDを入力して
20170805_python_1.jpg

Twitterの認証を実施して
(下記の通りReadのみの権限にしています)
20170805_python_2.jpg

認証から戻ってきて、処理を待つと……
20170805_python_3.jpg

公式リツイートされた発言と公式リツイートの直後の発言が表示されます。複数リツイートされれば複数表示されます。あと、コメント付リツイートに対しても処理ができているはずです。
20170805_python_4.jpg


結果編はこんな感じです。Flaskを使ってxrea.com上にてCGIモードで動かしました。そのための環境とscript編に続きます。

「ツイートの「公式RT直後のツイート」と「コメント付RT」の抜き出し」ですが、前...

posted by くまなべ at 21:13 | Comment(0) | TrackBack(0) | Python