2013-03-21 1 views
1

perl에서 Mechanize를 사용하여 this site에 특정 TV 프로그램의 다음 에피소드의 날짜를 가져 오려고합니다.양식 제출 후 리디렉션하면 WWW :: Mechanize (perl)를 사용하여 404 오류가 발생합니다.

# 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(); 

TV 쇼 웹 페이지에 연결할 수 없습니다. 404 페이지 만 표시됩니다. "찾고있는 페이지를 찾을 수 없습니다! 잘못된 URL을 입력했거나 잘못 연결되었거나 이동되었을 수 있습니다."

나는 형식을 잘못 작성하고 있습니까?

+0

을 ofc "빅뱅"은 결국 변수가 될 것입니다. atm "수동 검색으로 올바른 페이지로 이동했기 때문에 참조 용으로"빅뱅 "을 사용하고 있습니다. – Thatkookooguy

+0

페이지를 보면 양식이 일반적으로 양식을 제출하는 대신 javascript를 실행하는 것처럼 보입니다. (Mechanize는 JS를하지 않습니다) – geoffspear

답변

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 여기 홀수이기 때문에 내가 여기에 정규식을 사용)

+0

그게 좋습니다! – Thatkookooguy

+0

쿠키가 필요 없으며 제거되었습니다. upvote에 감사드립니다/귀하의 필요에 맞는 대답을 수락하십시오. –