我有一个Perl脚本,它使用WWW::Mechanize从文件读取并在网站上执行一些自动化任务。但是,每次请求某个页面后,该网站都会使用302重定向。我不想被重定向(它重定向的页面需要很长时间才能响应);我只想遍历文件并反复调用第一个链接。我无法弄清楚如何使WWW :: Mechanize不遵循重定向。有什么建议么?如何让WWW :: Mechanize避免重定向?
11
A
回答
10
WWW::Mechanize
是LWP::UserAgent
的子类。所以你可以使用任何LWP::UserAgent
方法。
my $mech = WWW::Mechanize->new();
$mech->requests_redirectable([]);
5
WWW :: Mechanize是LWP :: UserAgent的子类;您可以像使用LWP :: UserAgent一样在构造函数中设置max_redirect或requests_redirectable选项。
4
您可以使用$代理 - > max_redirect(0);,就像这个例子:
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;
my $agent = WWW::Mechanize->new('autocheck' => 1, 'onerror' => undef,);
$agent->max_redirect(0);
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);
$agent->max_redirect(1);
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);
在运行时它打印:
Got HTTP/302 from http://www.depesz.com/test/redirect.
Got HTTP/200 from http://www.depesz.com/.
所以,用max_redirect(0) - 它显然不遵循重定向。
相关问题
- 1. 如何避免重定向?
- 2. 如何避免重定向
- 3. 避免重定向
- 4. 如何避免重定向试图访问非WWW网址
- 5. 避免重定向
- 6. 如何跟随测试的重定向:WWW :: Mechanize?
- 7. iPhone:避免JavaScript重定向
- 8. PHP避免重定向
- 9. 避免shared_ptr重定向
- 10. 如何将www重定向到非www?
- 11. 表单提交后的重定向使用WWW :: Mechanize(perl)
- 12. Apache重定向:避免重定向循环
- 13. 重定向非www到www
- 14. 与WWW :: Mechanize
- 15. WWW :: Mechanize和yellowpages.com
- 16. 使用WWW :: Mechanize
- 17. 避免302通过Apache重定向
- 18. 避免在asp.net中重定向mvc
- 19. 如何避免htaccess重定向 - 重写循环?
- 20. 如何避免Apache mod重写无尽的重定向?
- 21. 如何避免在.htaccess中重写和重定向循环
- 22. 如何避免重复的内容?重定向301/404?
- 23. 避免PHP文件中无重定向
- 24. 避免重定向并坚持会话
- 25. GWT FormPanel中 - 避免重定向
- 26. 避免注册Wow6432Node重定向
- 27. Asp.net www重定向到非www www
- 28. 将www没有www重定向到www
- 29. Haproxy重定向www到非www www
- 30. 与www重定向
我试着将max_redirect设置为0,但它没有影响它。 – rfusca 2009-05-22 02:55:29
如果确实max_redirect不影响LWP和Mech是否不遵循重定向,那么这是一个应该报告的错误。 – 2010-03-31 21:39:46