如何在传递表单数据后使用ruby获取网页正文

How to get webpage body using ruby after passing form data

基本上是为了获取网页正文我曾经这样做过。

require "rest-client"
url="example.com"
test=RestClient.get(url)

但是现在网页设置了认证步骤。输入正确的密码后,您将转到 PAGE A,否则您将转到 PAGE B。我的问题是如何使用 ID 和密码登录。您可以将页面视为 this one here

我使用脚本输入凭据并查看我是否登录。

编辑: 简化 我想知道如何传递用户名和密码,我想知道在登录按钮后打开的页面的 URL被点击。

请注意,这根本不是劫持企图。我只想知道这是否可以完成。我给的网站只是一个例子。

其实你可以做到,但我想说这个解决方案不是很正确。

在您提供的 link 页面上,您可以找到带有操作字段 action="/registration/chooseAuth.do;jsessionid=73f8323730d5704b00f173314aaeaad2de767c0c0c42.e34Nb38TbhaTbO0Tc34Sbx0Obhv0n6jAmljGr5XDqQLvpAe"

form 标签

这是link实际授权,所以你可以这样做:

RestClient.post(url_from_the_form, { login: 'foo', password: 'bar' })

它可能会起作用,但是。您所做的称为网络抓取或网络爬行。有更适合的工具:

Mechanize(最简单的一个) Capybara + Selenium WebDriver

Mechanize 非常适合相当简单的网页。当涉及更多AJAX或SPA时,你最好选择Capybara + Selenium。