2012-06-06 2 views
-1

양식에 포함되지 않은 '검색 할 때 검색'검색 모음이있는 웹 사이트와의 상호 작용을 자동화하려고합니다. 다음은 HTML의 일부 :WWW :: 검색 형식대로 검색

<div id="search-box"> 
     <div class="form"> 
      <div class="input-outer"> 
       <div class="input-inner"> 
        <input class="xblur" id="q" name="q" title="type to begin search" type="text" value="" /> 
       </div> 
      </div> 
      <div id="cancel" class="activated" title="Clear search"> 
      </div> 
     </div> 

나는 형태를 처리 할 수 ​​있으며, 지금까지 스크립트가 잘왔다,하지만 지금은 장애물에 충돌 것 같다 ... 나는 그런 경우에 검색을 수행 할 수있는 방법, 바람직하게는 WWW::Mechanize을 사용합니다 (그러나 다른 모듈을 사용하거나 괜찮습니까?).

시간 내 주셔서 감사합니다.

답변

1

문제 해결에 관한 한, Firebug 플러그인을 Firefox에 설치하는 것이 좋습니다. 검색 양식 페이지로 이동하여 방화 광을 활성화하십시오. 입력 할 때 어떤 일이 일어나고 있는지 볼 수 있도록 콘솔 탭이 활성 상태인지 확인하십시오. 양식과 상호 작용할 때 AJAX가 GET 또는 POST 요청을 보면서 무슨 일이 일어나고 있는지 더 잘 이해할 수 있어야합니다.

방화범이 끌리는 아이콘에는 클릭 한 다음 페이지 요소를 선택하여 소스를 볼 수 있습니다. 이는 페이지가로드 된 후 뒤에 작성된 양식 요소의 이름을 얻기 위해 매우 편리합니다. .

콘솔에 나타나는 요청을 클릭하여 반환 된 요청과 응답을 확인할 수도 있습니다. 이 정보는 매우 가치가 있습니다.

이 정보가 있으면 검색 양식을 지나는 방법을 결정할 수 있습니다. 어떤 매개 변수가 검색 양식으로 보내지고 있는지 알 수 있다면 양식을 작성하고 mech를 통해 클릭하는 것보다는 검색 대상에 게시하는 것이 더 나을 것입니다.

$mech->post($url, { foo => 'bar', name => 'value' });                                   
+0

그 모든 세부 사항에 대해 대단히 고마움을 전하며 방금 다시 작업하러 왔습니다. 그래서 그들은 매우 편리하게 올 것이라고 확신합니다. – canavanin

1

페이지에서 JS를 실행해야합니까? Mozilla::Mechanize, Win32::IE::Mechanize

+0

실제로 알지 못합니다. 나는 이것에 익숙하지 않고 Javascript로 작업 한 적이 없기 때문에 틀릴 수도 있지만 저에게는 JS의 페이지가 Twitter 추종 및 Google Analytics와 관련이있는 것처럼 보입니다. 나는 수색과 관련 있을지도 모른 어떤 원본도 찾아 내지 못한다, 그러나 다시 아마 아마 나는 보는 방법을 모른다.? – canavanin

+0

상자에 입력하면 어떻게됩니까? 브라우저의 간단한 자동 완성 기능 이외의 것이라면 스크립팅이 필요합니다. – ikegami

+2

Firefox의 Safari 또는 Chrome의 WebInspector 또는 Firebug는 사용자가 입력하는 동안 브라우저가 보내는 요청 (있는 경우)을 파악하는 데 도움을줍니다. –