Perl WWW ::从字符串变量机械化
在Perl中,使用模块WWW::Mechanize
(必需,而不是其他模块),是否有可能从字符串变量,而不是URL“解析”文档?Perl WWW ::从字符串变量机械化
我的意思,而不是
$mech->get($url);
做这样的事情
$html = '<html...';
$mech->???($html);
可能吗?
明白了:
$mech->get(0);
$mech->update_html('<html>...</html>');
它的工作原理!
不是。您可以尝试使用$mech->response
获取HTTP::Response
对象,然后使用该对象的content
方法将内容替换为您自己的字符串。但是你必须调整所有的消息头,它会变得非常混乱。
你想要做什么? WWW::Mechanize
提供的forms
和images
等方法基于其他模块,代码相当简单。
我需要分析其他程序获取并作为输入传入的HTML代码。 – 2012-03-12 02:09:13
您可以将数据写入磁盘,然后以通常的方式获取()。事情是这样的:
#!/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> <体>富< /身体> </HTML >
我只是使用File :: Temp将数据写入磁盘并获得发送机械化使用$ mech-> get(URI :: file-> new($ tempfilename)) – singingfish 2012-03-12 09:27:10
@singingfish非常感谢您指出出。我相应地更新了我的示例。很好地将代码降下来。 – oalders 2012-03-12 17:03:21
什么傻的接口。难怪我无法在文档中找到它。 – singingfish 2012-03-14 09:01:45