我使用WWW :: Mechanize来抓取网站,除了有时它会打到返回错误代码404或500(找不到或内部的页面服务器错误),然后我的脚本就会退出并停止运行。这实际上与我的数据收集有关,所以无论如何WWW :: Mechanize会让我发现这些错误并查看返回的错误代码类型(即404,500等)。谢谢您的帮助!使用perl处理404和内部服务器错误WWW :: Mechanize
4
A
回答
6
你需要禁用自动检查:
my $mech = WWW::Mechanize->new(autocheck => 0);
$mech->get("http://somedomain.com");
if ($mech->success()) {
...
}
else {
print "status is: " . $mech->status;
}
而且,顺便说一句,看看WWW::Mechanize::Cached::GZip和WWW::Mechanize::Cached测试你的机甲脚本时,以加快发展。
3
关闭autocheck
并手动检查status()
,它会返回响应的HTTP状态码。
这就好比一个3位数字为行,为未找到,等等。
use strict;
use warnings;
use WWW::Mechanize;
my $url = 'http://...';
my $mech = WWW::Mechanize->new(autocheck => 0);
$mech->get($url);
print $mech->status();
见http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html为状态代码定义。
如果状态代码为400以上,那么你得到错误 ...
相关问题
- 1. Perl使用Parallel :: ForkManager和WWW :: Mechanize
- 2. 如何使用Android WebView处理“内部服务器错误”?
- 3. Perl WWW-Mechanize模块
- 4. 处理远程服务器返回错误:(500)内部服务器错误
- 5. 500内部服务器错误错误试图使用ErrorDocument来处理请求
- 6. 使用perl填充表单WWW :: Mechanize :: Formfiller
- 7. 使用WWW :: Mechanize
- 8. 内部服务器错误使用PHP
- 9. 使用htaccess和css处理404错误
- 10. 内部服务器错误 -
- 11. 内部服务器错误
- 12. 内部服务器错误
- 13. 内部服务器错误
- 14. 内部服务器错误
- 15. 内部服务器错误
- 16. 内部服务器错误
- 17. 内部服务器错误
- 18. 内部服务器错误
- 19. 服务器错误:HTTP错误500.19 - 内部服务器错误
- 20. 如何在Ajax响应中处理内部服务器错误
- 21. 在AngularJS中处理HTTP 500内部服务器错误
- 22. ASHX处理程序返回500内部服务器错误
- 23. 内部服务器错误,而处理MVC5
- 24. jQuery的:处理内部服务器错误响应
- 25. HTTP服务器实现应该如何处理内部错误?
- 26. 在WAS上处理60秒后500(内部服务器错误)
- 27. * HTTP错误500.21 - 内部服务器ErrorHandler“处理程序/ exchange.axd_ *”
- 28. 500内部服务器错误 - 处理程序,asp.net MVC
- 29. 如何更改内部服务器错误的处理?
- 30. 内部服务器错误而处理PHP卷曲代码
哇!正是我在找什么。谢谢:) – srchulo
'autodie => 0'是这样做的新方法我认为 – surfer190
@ surfer190你确定你不是指'autocheck => 0'(就像我的例子)?我没有在文档中看到“autodie”。 – oalders