Perlで、モジュールWWW::Mechanize
(必須で、他のモジュールではありません)を使用して、URLの代わりに文字列変数から文書を "解析"できますか?Perl WWW :: Mechanize from文字列変数
私は
$html = '<html...';
$mech->???($html);
可能性のあるような何かをする代わりに
$mech->get($url);
の意味ですか?
Perlで、モジュールWWW::Mechanize
(必須で、他のモジュールではありません)を使用して、URLの代わりに文字列変数から文書を "解析"できますか?Perl WWW :: Mechanize from文字列変数
私は
$html = '<html...';
$mech->???($html);
可能性のあるような何かをする代わりに
$mech->get($url);
の意味ですか?
はそれを手に入れた:
$mech->get(0);
$mech->update_html('<html>...</html>');
それは働きます!
$mech->response
を使用してHTTP::Response
オブジェクトを取得し、そのオブジェクトのcontent
メソッドを使用してコンテンツを独自の文字列に置き換えることができます。しかし、すべてのメッセージヘッダーも調整する必要があり、かなり面倒です。
あなたは何をしたいですか? forms
とimages
のような、WWW::Mechanize
が提供するメソッドは、他のモジュールに基づいており、コードはかなり簡単です。
私は、他のプログラムによってフェッチされ、入力として渡されたHTMLコードを分析する必要があります。 –
データをディスクに書き込んだ後、通常の方法で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の>
私はFile :: Tempを使ってデータをディスクに書き出し、$ mech-> get(URI :: file-> new($ tempfilename))で機械化するようにします。 – singingfish
@singingfish非常にありがとうでる。私はそれに応じて私の例を更新しました。コードをうまく縮める。 – oalders
どのような愚かなインターフェイス。私はドキュメントでそれを見つけることができなかったのも不思議ではありません。 – singingfish