您可以使用 mechanize 使登录过程自动化,然后保持其会话继续执行您想要的操作。
这是我的示例代码:
require 'mechanize'
module YourModuleName
class YourClassName
attr_reader :agent
def call
@agent = Mechanize.new
page = @agent.get(@login_page)
form = page.forms.first
form.field_with(id: LoginConstant::CSS[:user_email]).value =
LoginConstant::USER_NAME
form.field_with(id: LoginConstant::CSS[:user_password]).value = LoginConstant::PASSWORD
form.submit
self
end
end
end
然后在您的代码中抓取一个请求登录的页面,如下所示:
response = YourModuleName::YourClassName.new('<your_login_page>').call
response.agent.get('<your_page_to_want_cralwer>')