2013-05-08 2 views
1

64 비트 시스템에서 Windows Perl 5.16.3을 사용하고 있습니다. 나는 다음과 같은 URL로 기계화를 사용하는 경우어떻게 WWW :: Mechanize를 사용하여 페이지 매김을합니까?

http://www.utsavfashion.in/indowestern

모든 것이 잘 작동합니다. 그러나

, 내가 즉

변화 매김 옵션 indowestern #의 페이지에 마지막 문자열을 사용하여 시도 = 2

내가 두 번째 페이지의 콘텐츠를 얻을 수 없습니다. 나는 여전히 첫 페이지에서 내용을 얻는다. 조언을 사전에

my $url = "http://www.utsavfashion.in/indowestern#pg=2"; 

$m = WWW::Mechanize->new(); 
$m->get($url); 
print "$url\n"; 

my $c = $m->content; 

print "$c\n"; 

감사 :

아래 코드를 참조하십시오!

답변

1

웹 브라우저는 웹 서버에 #pg=2을 보내지 않습니다. 나는 WWW :: Mechanize가 할 수 있는지 없는지 모르지만, 그렇게해서는 안된다. 그래서 그것은 렌더링 무엇에있어, 차이가 가져온을 무엇에 있지 아니 당신이

http://www.utsavfashion.in/indowestern 

에 대해 동일한 페이지를 얻을 놀라움과

http://www.utsavfashion.in/indowestern#pg=2 

에 대한 없습니다.

웹 브라우저를 사용하여 렌더링하면 페이지의 JavaScript가 앵커를 확인하고 이에 따라 내용을 업데이트합니다.

print $content을 사용하여 렌더링하면 매우 다르게 보입니다. 멋지게 서식이 지정된 텍스트 나 JavaScript의 효과를 얻지 못합니다.

다운로드 된 콘텐츠에서 JavaScript를 처리 할 수있는 옵션이 있습니다. 그러나 데이터 마이닝을 사용하는 경우 다운로드 한 문서에서 데이터를 찾을 수없는 경우 다른 웹 요청을 수행하기 때문에 JavaScript가 대신 수행하는 작업을 복제하는 것이 더 효율적이고 안정적 ​​일 수 있습니다.

+0

도움 주셔서 대단히 감사드립니다. 어떻게이 문제를 해결할 수 있습니까? 다운로드 한 콘텐츠에서 JavaScript를 처리하는 방법을 가르쳐 주시겠습니까? – user1767387

+0

어떤 문제에 도전하고 싶습니까? 모든 것이 제대로 작동한다고 설명했고, 원하는 정보를 얻는 두 가지 방법도 제안했습니다. // 두 번째 질문에 대해서는 [둘러보기] (https://www.google.com/search?q=Perl+Mechanize+JavaScript)를 참조하십시오. – ikegami

+0

ikegami, 도와 줘서 고마워. 앞으로 나아갈 길을 찾을 것입니다. – user1767387

관련 문제