2013-10-09 3 views
1

http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company에서 제조업체 및 약품 정보를 수집하려고합니다.레일 리디렉션 후 페이지를 얻는 방법을 루비 - 기계화

기계화 보석은 라이언 Tutorial

내가 성공적으로 로그인 할 수의 도움으로 HTML 페이지의 내용을 추출하는 데 사용되지만 desination 페이지 http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company에 도달 할 수 있습니다. 내가 플래시 메시지와 함께 'CompaniesBrowse 회사 목록'링크, 페이지 리디렉션의 클릭 한 후 테스트

을위한 더미 로그인 자격 증명을 공유 "당신은 리디렉션 :

는 지금까지

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 
require 'mechanize' 
agent = Mechanize.new 
agent.user_agent = 'Individueller User-Agent' 
agent.user_agent_alias = 'Linux Mozilla' 

agent.get("https://sso.mims.com/Account/SignIn") do |page| 
    #login_page = a.click(page.link_with(:text => /Login/)) 
    # Submit the login form 
    login_page = page.form_with(:action => '/') do |f| 
    f.SignInEmailAddress = 'username of mims' 
    f.SignInPassword = 'secret' 
    end.click_button 

    url = 'http://www.mims.com/India/Browse/Alphabet/A?cat=drug' 
    page = agent.get url # here checking authentication if success then redirecting to destination 
    p page 
end 

주를 시도했다 ... ", 기계화 보석이 페이지를 캐시합니다.

질문 : 리디렉션 후 원래의 페이지를 (하는 방법에

1)).

답변

0

인증 확인을 위해 페이지로드 콜백이있는 MIMS 사이트 자동 제출 양식의 문제가 발견되었습니다. 그것은 machanize 보석과 함께 작동하지 않습니다.

해결책 양식을 수동으로 두 번 제출하면이 문제가 해결됩니다. 예

url = 'http://www.mims.com/India/Browse/Alphabet/A?cat=drug' 
page = agent.get url # here checking authentication if success then redirecting to destination 
p page 
page.form.submit 
agent.page.form.submit