我目前正在研究Perl脚本,我使用CPAN模块WWW:Mechanize来从网站获取HTML页面。 但是,我希望能够处理离线HTML文件(我最有可能预先保存自己),所以每次我尝试新脚本时都不需要互联网。 所以基本上我的问题是如何改变这个:
$mech->get( 'http://www.websiteadress.html' );
进入这个:
$mech->get( 'C:\User\myfile.html' );
我见过那个文件://可能很有用,但我显然不知道如何使用它,因为每次都会出错。
答案 0 :(得分:6)
WWW :: Mechanize中的get()
方法将URL作为其参数。因此,您只需要确定本地文件的正确URL。你使用“file://”方案就行了。
我想你需要:
$mech->get( 'file:///C:/User/myfile.html' );
注意人们经常出错的两件重要事情。
/
),因此您需要转换Windows'扭曲的反斜杠(\
)怪物。 更新:正如Borodin在评论中指出的那样,这不是真的 - 您可以在网址中使用反斜杠。但是,反斜杠通常在Perl字符串中有特殊含义,所以我建议尽可能使用正斜杠。file
,后跟://
(带有两个斜杠),然后是主机名(这是一个空字符串)斜杠(/
)然后是你的本地路径(C:/
)。这意味着file:
之后有三个斜杠。这似乎是错误的,所以人们经常省略其中一个。 更新:根据Borodin的评论建议,说明更加准确。维基百科(一如既往)有更多信息 - file URI scheme