我想从http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company收集制造商及其药品详情。
机械化 gem用于在ryan Tutorial
的帮助下从html页面中提取内容我可以成功登录,但无法访问目标页面http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company。
到目前为止我已经尝试了
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
注意:我已经为您的测试共享了虚拟登录凭据
点击'CompaniesBrowse Company Directory'链接,页面重定向闪存消息“你正在重定向...”,Mechanize gem缓存此页面。
问题:
1)如何获取原始页面(重定向后)。
答案 0 :(得分:0)
我发现MIMS站点自动提交表单的问题情况,页面onload回调用于检查身份验证。它不适用于machanize gem。
<强>解决方案强> 手动提交表单两次解决了这个问题。实施例
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