hrkt0115311の、迷えるプログラミング教室  RSSを登録する

プログラミングに興味はありますか? 素人が入門書片手にソースコード書いたりcgi作ったり、迷子になったりするメルマガです。広大なプログラミングの森で、一緒に迷子を楽しんでみませんか?

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2009/07/13

「hrkt0115311の、迷えるプログラミング教室」Vol.89 ~XML処理するTwitterまとめスクリプト改編の巻~

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

                                             
                 「hrkt0115311の、迷えるプログラミング教室」Vol.89

━━━━━━━━━━━━━━━━━━ XML処理するTwitterまとめスクリプト改編の巻

こんばんは。前回差し上げたメルマガは春にお届けしたのに、
今回は夏になってしまいました。毎日蒸し暑い日々が続きますが、
みなさまお変わりないですか?

私は、Rubyの書き方を忘れてショックを受けたり、PythonでTwitter botを作ろうとして
うまくいかなかったりと、そんな日々を過ごしていました。

今回は、ひょんなことから、「Twitterログまとめ」のPHPスクリプトを改変する機会に
恵まれましたので、メルマガでお届けしますね。


メルマガを登録して下さってる方、それからLDRに登録して下さってる方、
初心者のメルマガにおつきあいいただきありがとうございます。
 http://www.mag2.com/m/0000267290.html
 http://reader.livedoor.com/about/http://archive.mag2.com/0000267290/rss10.xml

では、今号をお届けいたします!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
○目次
 ・まずはTwitter botのこと
 ・Twitterログまとめ
 ・具体的にしたこと
 ・ソースコード
━━━━━━━━━━━━━━━━━━━━━━━━━━━免責事項

 ソースコードは、発行者が実際に動かし、構文チェックなどもしていますが
 ご利用になられて万一損害が生じた場合、保証することができません。
 ご利用になられる際は、ご自身でご確認になられた上で、お試し下さい。

━━━━━━━━━━━━━━━━━━言語処理系等の導入について

 Perl,PHP,Python,Rubyの入手先と、XAMPPの入手先を紹介します。

 ○The Perl Directory - perl.org
 http://www.perl.org/

 ○日本PHPユーザ会
 http://www.php.gr.jp/

 ○Python Japan User's Group
 http://www.python.jp/Zope/

 ○Ruby Install Guide
 http://preview.tinyurl.com/4ghc3o

 ○XAMPP
 http://www.apachefriends.org/jp/xampp.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○ まずはTwitter botのこと

PythonとRubyで作ろうと試みたのです。Twitter用の外部コードが
用意されていてgem等でインストールして使えるのですが、
レンタルサーバーでそうした外部コードをどう扱えばいいのか
分からなかったので、PHPを試しました。

PythonやRubyでも外部コードに頼らずに、TwitterのAPIを使い
POSTするbotは書けると思います。ただ、ググってもサンプルコードに
たどり着けなくて……。PHP版はなんとかサンプルにたどり着けたので
今回は、PHPで書くことにしました。


○ゆんゆん坊ちゃん (yunyun_bocchan) on Twitter
 http://twitter.com/yunyun_bocchan

○文芸系何かを受信さん (bungei_square) on Twitter
 http://twitter.com/bungei_square

○文芸系何かを受信さん web
 http://tool.hrkt0115311.org/bungei_square/

文芸系何かを受信さんはWEB版も作りました。リロードすると
表示される文章がかわります。

形態素解析かけたテキストを読み込んで、マルコフ連鎖使って
つなぎ合わせて表示しています。Tweenなどでご覧いただくと一目瞭然
なのですが、形態素ごとに改行が入ってしまうのです。これが余分なので
そのうち直せたらいいなぁと思っています。

「圧縮新聞」と比較すると、文末の自然さなど、まだまだかなわないです。
でもとにかく、botを作ってみたかったので、作って安定して動いて
くれていて嬉しいです。
(レンタルサーバーで1時間に1度、cronで動かしています)

☆経緯
 ○Twitter bot 「文芸系何かを受信さん」つくった! - どんなジレンマ
  http://d.hatena.ne.jp/hrkt0115311/20090526/1243308210

 ○Twitter bot 「ゆんゆん坊ちゃん」 作りました! - どんなジレンマ
  http://d.hatena.ne.jp/hrkt0115311/20090524/1243156499

 ○bot二人にマルコフ連鎖を搭載したよ! - どんなジレンマ
  http://d.hatena.ne.jp/hrkt0115311/20090527/1243419504


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○ Twitterログまとめ


 ○Twitterログまとめ
  http://duck75.main.jp/twitter/index.php

id:duck75さん( http://d.hatena.ne.jp/duck75/ )が作成された上記ツールを
使わせていただいていました。

出力されるHTMLテーブルの形式が

|アイコン|ユーザーID|POST本文|個別ステータスへのlink|

という並びなのです。

Twitterでおしゃべりしていて気づいたのですが、「アイコン」と「ユーザーID」って
リンク先が同じですよね。

|アイコン|個別ステータスへのlink|POST本文|

と、したいね、という流れになりました。で、id:duck75さんに声かけたところ
思いがけずソースコードを見せて下さったんです。それで改変を試みました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○ 具体的にしたこと

ソースコードの調整した部分だけ表示しますね。

オリジナル
print "<tr>";
print "<td><a href=\"http://twitter.com/{$data['status']['user']['screen_name']
}\"><img src=\"{$data['status']['user']['profile_image_url']}\" width=\"32\" 
border=\"0\" /></a></td>";
print "<td><a href=\"http://twitter.com/{$data['status']['user']['screen_name']
}\">{$data['status']['user']['screen_name']}</a></td>";
print "<td>{$data['status']['text']}</td>";
print "<td><a href=\"http://twitter.com/{$data['status']['user']['screen_name']
}/status/{$data['status']['id']}\">link</a></td>";
print "</tr>";



改変後
print "<tr>";
print "<td><a href=\"http://twitter.com/{$data['status']['user']['screen_name']
}\"><img src=\"{$data['status']['user']['profile_image_url']}\" width=\"32\" 
border=\"0\" /></a></td>";
print "<td><a href=\"http://twitter.com/{$data['status']['user']['screen_name']
}/status/{$data['status']['id']}\">{$data['status']['user']['screen_name']}</a>
</td>";
print "<td>{$data['status']['text']}</td>";
print "</tr>";


   ☆メルマガ配信の都合、ソースコードの右端に改行を入れています☆


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○ ソースコード


 ○TwitterまとめツールのPHPソースコードを教わったので、
  改変・公開したよ! - どんなジレンマ
  http://d.hatena.ne.jp/hrkt0115311/20090712/1247335678

上記で公開しています。
オリジナル通りのものと、フリーのデザインテンプレートを使ったものの
二つを公開しています。


○duck75の日記
 http://d.hatena.ne.jp/duck75/

id:duck75さん、ソースコードを見せて下さりありがとうございました!


■ 編集後記
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

テキスト処理と一言で言っても、僕が書くようなシンプルなものから、
データを解析して、テンプレートに流し込むようなものまでありますよね。
テキスト処理に興味があるので、出来ること増やしたいなぁと思っています。

○フレームワークを採用する理由 - Life is Really Short, Have Your Life!!
 http://d.hatena.ne.jp/aroundthedistance/20090528/1243478897

あとは、上記でフレームワークについて教えていただいたので
CakePHPをちょっとずつやっています。テキストなかなか進まないです><

○CakePHP のおいしい食べ方: Cake3 !
 http://cakephp.seesaa.net/article/123400557.html

あうっ。もたもたしてる間に、新しいバージョン!

……それでは、また次号でお会いしましょう。


■ いただいた反響について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「こんな仕組み作れないかな」とか「説明不足で分からないよ」といったご指摘を
お寄せいただけると嬉しいです。みなさまの声で、メルマガを育てていきたいです。

また、頂戴したメールをこのメルマガで紹介させていただくかもしれません。
もし、公開を望まれない場合は、恐れ入りますが、「発行者のhtkt0115311に読んで
欲しいだけで、メルマガには掲載しないで」などとお書き下さると助かります。

■ 転送や再配布について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 このメルマガをご紹介いただく際は、
 このメルマガのURL http://www.mag2.com/m/0000267290.html などを
 並記し、私の書いた文章であると分かる形にして下さると幸いです。
 メルマガの転送については、転送者さん・転送されたメールを受信される方に
 迷惑でない範囲であれば歓迎いたします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 メールマガジン「hrkt0115311の、迷えるプログラミング教室」

 ○発行者      htkt0115311(どんジレ)
 ○発行システム  『まぐまぐ!』 http://www.mag2.com/
 ○配信中止はこちら http://www.mag2.com/m/0000267290.html
 ○公式サイト    http://enjoy-programming.g.hatena.ne.jp/hrkt0115311/
 ○blog       http://hrkt0115311.blog10.fc2.com/
 ○Twitter     https://twitter.com/hrkt0115311
 ○はてなハイク   http://h.hatena.ne.jp/hrkt0115311/
 ○Wassr      http://wassr.jp/user/hrkt0115311
 ○お問い合わせ   enjoy.ruby@gmail.com

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る