2015/11/18

PythonでPDFをさわってみる

ユーザーのハードウェアトラブルで現地に行くとすでに治っている状況を
1日で3度も遭遇したやまやまです。


第21回岡山Python勉強会(通称:おっPy)で発表した内容です。

今回は久々に元?主催者のたけとも(@soudai1025)参加のもと開催しました。
(ホント主催者に久々に会った気がする)

お題目は、PythonからPDFをさわると言った内容で話をしました。

今回の勉強会ネタを考えていた時に仕事で定型的(書式の決まったような)なPDFから
情報を取り出せると何となく仕事でラクができそうな気がしたから…と言った不順な
動機から調べたのが始まり

使ったモジュールは、

Pdfminer(http://www.unixuser.org/~euske/python/pdfminer/)

どうも日本人の方が作られているようで日本語も対応しているモジュール。
できることは、PDFファイルの中にある文字列をテキストファイルに出力したり、
埋め込まれた画像を抽出したりができたりするとのこと。


その時のスライド




インストールはサイトからダウンロードしてきたZipファイルを解凍し、
setup.pyをinstallコマンドで起動するだけ。

これで動くのだが日本語が文字化けするので日本語の環境設定が必要とのこと、
実はここがハマりどこでmacだとmakeコマンドcmapを作ればいいのだがwindowsでは
makeが使えないのでフォルダを作成後、コマンドを発行するがその際のパスを
絶対パスで設定する必要がある(環境によってインストールフォルダが違う場合に
変える必要がある)

powershellでやっていて、ここでエラーが出て気づくまでに結構かかった。
(エラーを読めば確かに指定先が無いと怒られていた…)

実際に触ってみるとコマンド自体も2つ(txt変換用モジュールとデバッグ用モジュール)
なのでかなりシンプル。
文章のみを抜き出したい時がさくっと使えるかと。
縦書きも対応しているようなのだが今回は確認までできていない(出力されるとどうなるんだ?)

所感としては、
ホントさくっとテキストを出力したいときは使えるかと思った。ただ細かいことを
やろうとするとPDFの構造について知識が無いと厳しいかと。

あとは、元のPDFがどういった形で作られているかによりできる/できないことが別れる
ところが大きいのではないかな(スキャナでスキャンしたPDFは、画像なので当然textの
抽出ができないとか)

といったところで今回はここまで。
次回は、なんのネタで話をしようかなと思っているやまやまでした。

2015/10/01

PythonでExcelを動かす

ブログ各の久しぶりのやまやまです。

今回で20回目の岡山Python勉強会(通称:おっPy)で発表した内容です。

PythonからExcelをさわると言った内容で話をしました。
VBAでなんかしようと思うと結構、ググることは多くて別の方法はないかと
思ったのがことの始まりです。(完全に俺得な内容ではありますが…)


その時のスライド


Pythonでexcel from Keigo Yamate


個人的に思ったのは、PowershellからPythonを呼び出してセルに直接書き込んだりできるので結構使いドコロはありそうな感じ。

ハマりどころは、Windowsで使うにはwin32apiを使っているのでその辺りの設定かと。

勉強会の中で話に出たが処理を分離できればソースのバージョン管理ができるのではないか?との意見がでたがたしかにそれはアリかも。

まあ、このあたりの話は、別の機会に書こうかとは思いますが。

そういえば、2015年11月22日(日曜)にPyCon mini Hiroshimaが開催されます良かったら参加してみてはどうでしょう。






2015/01/26

PythonでWebdriverを使ってみる

やまやまです。

ひさびさの更新ですが今回も勉強会で岡山Python勉強会(通称:おっPy)発表したので報告します。

今回は、すつーか0x0a0x0dさんからのリクエストでWebdriverについてまとめてみました。

その時のスライドがこれ





実際に触ってみた感想として、


  • webで処理を自動化するには便利
  • Selemium IDEで取得するタグを調べながらできるのはラク
  • Windowsで日本語を扱うのが…(使うエディタにもよるが)
  • IEは…


  • まあ、操作する際のテストを管理することを考えるとテストファイルを項目ごとに分けたり、Gitで履歴管理したりもできるのでいいかと。

    でも、なんでSelenium IDEからテストスイートをエクスポートする際にPythonは、ないんだろ?(C#は、あるのに…)