1

我想从http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company收集制造商及其药品详细信息。

Mechanize gem 用于在 ryan教程的帮助下从 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 公司目录”链接后,页面重定向并显示闪烁消息“您正在重定向...”,Mechanize gem 缓存此页面。

问题:

1)如何获取原始页面(重定向后)。

4

1 回答 1

0

我发现 MIMS 站点自动提交带有页面加载回调的表​​单以检查身份验证的问题案例。它不适用于机械化宝石。

解决方案 手动提交表单两次可以解决此问题。例子

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
于 2013-10-16T07:20:45.217 回答