2015年1月2日金曜日

urllib2とurllib問題

python3とpython2でurllibの仕様が変わっているそうですので、メモっておきます。

  import urllib.request                                              # python3
  import urllib2                                                         # python2

  opener  = urllib.request.build_opener()                 #  python3
  opener  = urllib2.build_opener()                            #  python2

  request = urllib.request.Request('http://xxxx')     #  python3
  request = urllib2.Request('http://xxxx')                #  python2

よろしく、お願いいたします。

PyQueryをインストールする問題

スクレイビングは流行ってんのかぁ?と、お寒いニューロンが幾つもの<???>に悩まされながら。ものはついでと、PyQueryもインストールしてみまっす。

お約束のように、pipを使いまして。

MacBook-Air:~ OnePunchMan$ sudo pip install pyquery
確実に、底辺、そして、あるいは、貧者のMATLABたるpythonで、2015年度の正月休みを、予定通り棒にふっております。嫁さんも、しごく不機嫌です。

しかし、「電池つきの玩具」とマッチポンプな自己リスペクト、わたくし意識高い系のpythonは、さすがに楽っだなぁ。Cでシコシコとコードなんぞ書いてらんねえなぁとは思う。『はじめてのC』なんてエロいだけで、もうそろそろ耐用年数は過ぎたのかなぁとも思いつつ、天空を仰ぐ。いつの日にか"電池つきの玩具"の文字列が、卑猥/NOT卑猥のどっちなのか、ツイッターログを統計解析して、シロクロはっきりさせたいものである。

boilerpipeをインストールする問題

仮想環境からのboilerpipe呼び出しは、出来た訳ではございますか、何かとめんどくせ〜。bagrant upをいちいちやらされるのは嫌だなは、ソフト方面の習性じゃん。

とのことで、anacondaからboilerpipeを動かせるようにしてみましょう。

・boilerpipe(ダウンロード、インストール)

 Get a binary and optionally also the source tarball from the Downloads pageExtract the files somewhere
   tar xvzf boilerpipe-VERSION-bin.tar.gz
   tar xvzf boilerpipe-VERSION-src.tar.gz
 Add boilerpipe-VERSION.jar, nekohtml-1.9.13.jar and xerces-2.9.1.jar to your Java classpath
 (these jar files are included in the binary tarball).
 (Whereas VERSION needs to be replaced by boilerpipe's version number, e.g. 1.0.3).

ついでに、CLASSPATHを設定しますが、anacondaが.bash_profileをいじってるようですので、真似っこします。

・boilerpipe(CLASSPATH)
(.bash_profile)# added for boilerpipeexport CLASSPATH="//Users/tanakayasuhisa/Downloads/boilerpipe-1.2.0://Users/tanakayasuhisa/Downloads/boilerpipe-1.2.0/lib:$PATH"
でコマンドラインで、シェルを再実行いたします。
MacBook-Air:~ AhoahoMan$ source .bash_profile
boilerpipyはjava実装なので、pythonのラッパー(と呼んでよいか?)をインストールせにゃならんので、以下を実行します。

MacBook-Air:~ AhoahoMan$ sudo pip install boilerpipe

ここでJavaのアップデートなどと色気付いたのが、その後のトラブルの元凶、鬼畜の所業、下衆の振る舞いだったのでしょう。


pythonから以下を実行しますと、”Javaが6じゃねえから動かねえぜ、おバカな君は<詳細情報>のボタンを押しな、ケッ!”と言う意味合いの人間を小馬鹿にしたエラーダイアログをMacBook司教(Air派)が出されます。

  from boilerpipe.extract import Extractor
  u = "http://www.miyadai.com/index.php?itemid=1061"
  e = Extractor(extractor='ArticleExtractor', url=u)
  print e.getText()

こんな時に、腹を立ててパソコンを床に叩きつけると、またまた、余計な出費が発生しますので、機械に小馬鹿にされたぐらいで動じてはいけません。ここは、心静かに<詳細情報>ボタンを押しますと、以下のページが表示されます。

appleのサポート神官に感謝しつつ、記載の内容に従い、かなり怪しげなパッケージをインストールしますと、あら不思議。さきほどのpythonソースが動きます。

こんなとき、何が起こったのかは、子羊であるところの消費者(カスタマー)が疑問をもってはいけません。apple教の深遠な思想を思いやるのは、時間の無駄(あるいは、よき人生の無駄)です。

お疲れっす。

【MIYADAI.com】からテクストをパクる(2)

BeautifulSoupが高機能っぽいんですが、どうもテクストの抽出がもっさりしているんで、嫌だなぁって感じでしたが、ありましたよ、boilerpipeが。

まあ何しろ、出来ることが出来りゃあいいんですが。
と言うわけで、下記に示す。

  from boilerpipe.extract import Extractor
  u = 'http://www.miyadai.com/index.php?itemid=1061'
  e = Extractor(extractor='ArticleExtractor', url=u)
  print e.getText()

あざっす。