我有一個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. iPhone:避免JavaScript重定向
- 7. 避免shared_ptr重定向
- 8. 如何將www重定向到非www?
- 9. 表單提交後的重定向使用WWW :: Mechanize(perl)
- 10. 重定向非www到www
- 11. WWW :: Mechanize和yellowpages.com
- 12. 使用WWW :: Mechanize
- 13. 避免302通過Apache重定向
- 14. 避免在asp.net中重定向mvc
- 15. 如何避免重複的內容?重定向301/404?
- 16. Asp.net www重定向到非www www
- 17. 避免註冊Wow6432Node重定向
- 18. 如何讓RoleProvider避免重寫自定義角色?
- 19. 重定向到www .htaccess不重定向
- 20. 將http重定向到https並將www重定向到非www
- 21. Perl WWW-Mechanize模塊
- 22. 一個如何避免從ISP 404重定向?
- 23. 如何避免使用Zuul重定向到其他主機?
- 24. 如何避免模型的數據通過重定向
- 25. 如何避免從htaccess文件中的子域重定向?
- 26. Grails formRemote - 如何避免在多表單上重定向?
- 27. 如何避免重定向兩次(react-router-redux)?
- 28. 如何在Android Webview中避免Google的「重定向通知」
- 29. Flask默認路由如何避免重定向?
- 30. 如何避免PANTHEIOS_FE_PROCESS_IDENTITY的多重定義?
我試着將max_redirect設置爲0,但它沒有影響它。 – rfusca 2009-05-22 02:55:29
如果確實max_redirect不影響LWP和Mech是否不遵循重定向,那麼這是一個應該報告的錯誤。 – 2010-03-31 21:39:46