【问题标题】:Perl WWW::Mechanize foreach loop follow links and see if they give a 401 responsePerl WWW::Mechanize foreach 循环跟随链接并查看它们是否给出 401 响应
【发布时间】:2012-08-24 09:16:18
【问题描述】:

我一直在尝试使用 perl www::Mechanize 创建一个程序,该程序将跟踪网页上的所有链接,然后检查每个链接以查看其中是否有任何返回 401 响应(使用mech->status等)

如果有人可以给我看一个 perl www::Mechanize 程序来做这件事,那就太好了。

我尝试了多种方法,但似乎无法使其正常工作。

我对 perl www::Mechanize 相当有经验,并且用它做了更复杂的事情,但是 只是不能让它跟随 foreach 循环中的每个链接,看看它们是否给出 401 响应标题。

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

【问题讨论】:

  • 你能告诉我们what you've tried吗?
  • 在我的 iPad 上,所以无法显示确切的代码,但基本上是这样的
  • 在我的 iPad 上,所以无法显示确切的代码,但它基本上是这样的 my @links = $mech->links; foreach (at-sign)links {($mech->follow_link) if $mech->status = 401;打印“找到401状态”; } 。我显然错过了部分,因为我不记得我脑海中的全部内容,但你明白了。如果您可以向我展示一些非常有用的示例代码,因为我可以找出我缺少的关键部分。提前谢谢你,厘米
  • 我认为是检查数组中的每个链接是否有未正确完成的 401 响应。
  • 你最好把你的代码贴出来让我们看看你做了什么

标签: perl mechanize http-status-code-401


【解决方案1】:
foreach my $link ( $mech->find_all_links() ) {

    $mech->follow_link($link);
    if ( $mech->status() == 401 ) {

        say "401 status found";
    }
}

您需要使用 == 而不是 = 在 Perl 中检查一个数字是否等于另一个!

【讨论】:

  • 当我在评论中看到 OP 的(伪)代码时,我也是这么想的,但想在他发布他使用的实际代码之前让他受益于怀疑
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 2012-10-20
  • 2013-04-18
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多