【问题标题】:redirect after form submit gives a 404 error using WWW::Mechanize (perl)表单提交后重定向使用 WWW::Mechanize (perl) 给出 404 错误
【发布时间】:2013-03-21 17:29:05
【问题描述】:

我正在尝试使用 perl 中的 Mechanize 来获取 this site 中特定电视节目下一集的日期。

# getting episode number & date

# create a new browser
use WWW::Mechanize;
my $browser = WWW::Mechanize->new(autocheck => 0);

# fill search form, getting to tv show page
my $url= "http://next-episode.net/";
$browser->get($url);
$browser->form_name("search");
$browser->field("search", "big bang");
$browser->click();

print $browser->content();

我无法访问电视节目网页。我只得到 404 页面:“抱歉,找不到您要查找的页面!您可能输入了错误的 url,或者链接错误或移动了。”

我填错表格了吗?

【问题讨论】:

  • ofc“大爆炸”最终将成为一个变量。 atm 我使用“big bang”只是为了参考,因为手动搜索可以让我找到正确的页面。
  • 查看页面,看起来该表单通常运行 javascript 而不是提交表单。 (机械化不做JS)

标签: perl parsing www-mechanize


【解决方案1】:

这个呢? :

my $url = "http://next-episode.net";
my $search = "big bang";

use WWW::Mechanize;
use URI::Escape;
my $browser = WWW::Mechanize->new(autocheck => 1);

my $string = uri_escape $search;
$browser->get("$url/site-search-$string.html");

print $browser->content();

如果您想知道剩余的等待天数,请添加额外的行:

print "$1 days to wait\n" if $browser->content() =~ /(\d+)\s+Day\(s\)\s+/;

(我在这里使用正则表达式,因为HTML 这里很奇怪)

【讨论】:

  • 太好了!它比我写的要好得多(而且更短):-)
  • 不需要 cookie,已删除。感谢支持/接受符合您需求的答案
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 2010-12-16
  • 2012-06-10
  • 1970-01-01
  • 2012-06-10
  • 2021-01-12
  • 2012-12-30
  • 1970-01-01
相关资源
最近更新 更多