[前][次][番号順一覧][スレッド一覧]

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...         ]