2015-01-22 2 views
0

나는 Mechanize가 찾은 히트리스트 페이지를 탐색하려고합니다. 좋은 검색 결과가 나왔을 때 페이지 당 10 개의 레코드로 구성된 히트 목록을 얻습니다. 하단 네비게이션 시스템은 10을 넘는 레코드 수로 이동합니다. 페이지 당 10을 표시합니다. 그래서 53 레코드 = 6 "그룹 페이지"라고 부릅니다.Mechanize Traverse & Parse

  1. 잡아이 목록에있는 모든 레코드 뒤에 HTML을 : 내가 원하는 무엇

    는 다음과 같이 상단 검색 결과 페이지를 사용합니다. 나는 반복을 통해 그것을 할 수있다.

  2. 하단의 '[다음]'링크를 따라 가며 더 이상 없을 때까지 1과 2를 반복하십시오. 기본적으로 모든 레코드가 생성됩니다.

첫 번째 페이지를 두 번째 페이지로 이동하는 데 문제가 있습니다. 나는 처음 10 개의 레코드 뒤에 html을 붙잡고 있지만, 그때 시스템은 나를 공격한다. 이유를 모르겠다. 나는 그룹 페이지를 반복하고 있다고 생각했지만 첫 번째 그룹 페이지를 넘어서고 있지 않습니다.

counter = 1 
    puts "Counter: #{counter}" 

    while agent.page.links_with(:text => '[Next]').count == 1 
     page = agent.page.link_with(:text => '[Next]').click 
     puts "Counter/Next: #{counter}/#{agent.page.links_with(:text => '[Next]').count}" 
     agent.page.links_with(text: '[complete profile]').each do |link| 
      a = link.click  # link.click goes to each company page 
      r = a.body.to_s 
      r = r.gsub(/^\s+\n/, "") 

      # enter company into db 
      class Company < ActiveRecord::Base 
      end 

      company = Company.new 
      company.cdate = DateTime.now 
      company.status = 'new' 
      company.requestID = req_id 
      company.html = r 
      company.save  
     end 
     counter += 1 
    end 

감사합니다. 나는 내가 가까웠다는 것을 안다.

건배

답변

0

해결 방법 : 페이지 뒤에 클릭 방법을 이동 :

page = agent.click(page.link_with(:text => "[Next]"))