我有一个网页,重定向到另一个网址的形式http://www.example.com/url.html#midpage.
我想知道WWW::Mechanize是否可以跟随http://www.example.com/url.html而不是http://www.example.com/url.html#midpage?
我有一个网页,重定向到另一个网址的形式http://www.example.com/url.html#midpage.
我想知道WWW::Mechanize是否可以跟随http://www.example.com/url.html而不是http://www.example.com/url.html#midpage?
2条答案
按热度按时间70gysomp1#
WWW::Mechanize
子类LWP::UserAgent
,所以你仍然可以使用LWP::UserAgent
的任何方法。因此你可以使用simple_request()
方法,它不会自动处理重定向,只是以HTTP::Resonse
对象的形式返回响应,这意味着您可以使用is_redirect()
和header()
方法来获取重定向URI。这意味着您可以使用URI
模块完成#之后的所有内容。呼!
你的代码看起来像这样:
可能会有一些微调要做,可能是围绕
header()
线,但这将是总的想法。5vf7fwbs2#
WWW::Mechanize是LWP::UserAgent的子类,因此答案是相同的。
如果您想自己处理重定向以重写URL,您可能需要使用
response_done
或response_redirect
处理程序。请参阅LWP::UserAgent文档的“处理程序”部分。至于“正确地”,HTTP specification并没有说明客户端应该如何处理片段,除了在14.6中的引用报头(这是唯一一个出现“片段”一词的地方)。