2012-03-11 11 views
0

Perlで、モジュールWWW::Mechanize(必須で、他のモジュールではありません)を使用して、URLの代わりに文字列変数から文書を "解析"できますか?Perl WWW :: Mechanize from文字列変数

私は

 $html = '<html...'; 
     $mech->???($html); 

可能性のあるような何かをする代わりに

 $mech->get($url); 

の意味ですか?

答えて

1

はそれを手に入れた:

  $mech->get(0); 
      $mech->update_html('<html>...</html>'); 

それは働きます!

+2

どのような愚かなインターフェイス。私はドキュメントでそれを見つけることができなかったのも不思議ではありません。 – singingfish

-2

$mech->responseを使用してHTTP::Responseオブジェクトを取得し、そのオブジェクトのcontentメソッドを使用してコンテンツを独自の文字列に置き換えることができます。しかし、すべてのメッセージヘッダーも調整する必要があり、かなり面倒です。

あなたは何をしたいですか? formsimagesのような、WWW::Mechanizeが提供するメソッドは、他のモジュールに基づいており、コードはかなり簡単です。

+0

私は、他のプログラムによってフェッチされ、入力として渡されたHTMLコードを分析する必要があります。 –

1

データをディスクに書き込んだ後、通常の方法でget()することができます。このような何か:

#!/usr/bin/env perl 

use strict; 
use warnings; 

use File::Temp; 
use URI::File; 
use WWW::Mechanize; 

my $data = '<html><body>foo</body></html>'; 

# write the data to disk 
my $fh = File::Temp->new; 
print $fh $data; 
$fh->close; 

my $mech = WWW::Mechanize->new; 
$mech->get(URI::file->new($fh->filename)); 

print $mech->content; 

プリント:<HTML> <体> FOO < /ボディ> </htmlの>

+0

私はFile :: Tempを使ってデータをディスクに書き出し、$ mech-> get(URI :: file-> new($ tempfilename))で機械化するようにします。 – singingfish

+0

@singingfish非常にありがとうでる。私はそれに応じて私の例を更新しました。コードをうまく縮める。 – oalders

関連する問題