如何从http响应获取301/302网站重定向位置并关注它?

per*_*ser 2 perl redirect mechanize lwp-useragent

我一直在尝试使用perl Mechanize(WWW :: Mechanize)从http响应中获取301/302重定向位置,但是在使用诸如response-> header之类的东西从响应中提取它时遇到了问题.

任何人都可以帮助从使用301或302重定向的网站的http响应中提取重定向位置吗?

我知道我想要做什么,以及如果我有这个重定向位置URL怎么做,因为我之前使用Mechanize完成了更复杂的事情,但我只是遇到了从获取位置(或任何其他响应字段)的真正问题http响应.

非常感谢您的帮助,非常感谢,CM

Dav*_*ous 5

WWW :: Mechanize应该自动遵循重定向(除非你告诉它不要通过 requests_redirectable),所以你不需要做任何事情.

编辑:只是为了证明:

DB<4> $mech = WWW::Mechanize->new;

DB<5> $mech->get('http://www.preshweb.co.uk/linkedin');

DB<6> x $mech->uri;
0  URI::http=SCALAR(0x903f990)
  -> 'http://www.linkedin.com/in/bigpresh'
Run Code Online (Sandbox Code Playgroud)

......正如您所看到的,WWW :: Mechanize遵循重定向,并自动结束了目的地.

根据要求更新了另一个示例:

DB<15> $mech = WWW::Mechanize->new;

DB<16> $mech->get('http://jjbsports.com/');

DB<17> x $mech->uri;
0  URI::http=SCALAR(0x90988f0)
 -> 'http://www.jjbsports.com/'
DB<18> x substr $mech->content, 0, 40;
0  '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML'
DB<19> x $mech->title;
0  'JJB Sports | Trainers, Clothing, Football Kits, Football Boots, Running'
Run Code Online (Sandbox Code Playgroud)

如您所见,它遵循重定向,并$mech->content返回页面的内容.这些帮助有用?