rails:2212
From: Tatsuki Sugiura <sugi@n...>
Date: Mon, 11 Jun 2007 19:55:42 +0900
Subject: [rails:2212] Re: wgetとRailsについて
杉浦です。 内海さんの書かれている通り open-uri とか使った方がいいよ、 と言うのはあるのですが。 ちょっと気になったので試してみました。 >>> In Message "[rails:2208] wgetとRailsについて" >>> <20070611181914.8F57.K.SATO@a...>, >>> Kyoko Sato <k.sato@a...> said; > コマンドライン上で以下のコマンドはきくのですが、 > /usr/bin/wget -k -O /dev/stdout http://www.xxx.co.jp/ これ、本当にプロンプトが帰ってきますか? 手元で実行すると取得した HTML が出力されたあと、Ctrl-D を 押さないと終わってくれません。 どうも -k -O /dev/stdout オプションの指定が悪そうです。 > Rails上では、以下のコードで詰まってしまいます。 > allhtml = "" > wget = open("|/usr/bin/wget -k -O /dev/stdout \"http://www.xxx.co.jp/\"}") > while wgetLine = wget.gets > allhtml += wgetLine if (wgetLine != nil) > end > wget.close > allhtmlに、データを取得したいのですが、何がおかしいのか > 教えていただけないでしょうか? > 宜しくお願いします。 ruby -e 'open("| wget -q -O/dev/stdout http://localhost/"){|f| p f.read }' # => "<html><body><h1>It works!</h1></body></html>" ruby -e 'open("| wget -q -k -O- http://localhost/"){|f| p f.read }' # => "<html><body><h1>It works!</h1></body></html>" ruby -e 'open("| wget -q -k -O/dev/stdout http://localhost/"){|f| p f.read }' # プロンプトが帰ってこない (shell と同じ) wget のソース読まずに strace しただけなので予想ですが、 -O の後ろに - で はなくて/dev/stdout を指定してしまうと、ストリームではなくて普通のファイル として認識するんじゃないでしょうか。 で、-k が付いているので、再度そのファイルを open しなおしてコンテンツを 書き換えようとします。ところがファイルが /dev/stdout なので入力待ちで ブロックする。と、多分そういう原因ではないかなと。 -- Tatsuki Sugiura mailto:sugi@n... -- ML: rails@r... 使い方: http://QuickML.com/
2175 2007-05-15 12:20 [yuichi_katahira@m...] Rails勉強会@東北第0回 開催のお知らせ 2176 2007-05-15 12:41 ┗[kueda@z... ] 2177 2007-05-15 12:58 ┗[yuichi_katahira@m...] 2208 2007-06-11 11:20 ┗[k.sato@a... ] wgetとRailsについて -> 2212 2007-06-11 12:55 ┣[sugi@n... ] 2214 2007-06-11 13:01 ┃┣[dc@p... ] 2217 2007-06-12 04:43 ┃┗[k.sato@a... ] 2215 2007-06-12 02:27 ┗[stoyan@g... ] 2218 2007-06-12 07:04 ┗[k.sato@a... ]