Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ruby在抓取过程中提交登录字段?_Ruby_Web Scraping_Nokogiri_Mechanize_Typhoeus - Fatal编程技术网

使用ruby在抓取过程中提交登录字段?

使用ruby在抓取过程中提交登录字段?,ruby,web-scraping,nokogiri,mechanize,typhoeus,Ruby,Web Scraping,Nokogiri,Mechanize,Typhoeus,我需要从一个叫NetTeller的系统中搜集一些财务数据 可以找到一个例子 注意初始ID字段提示: 提交后,您必须输入密码: 如您所见,它有两个步骤,首先输入ID号,然后在提交后向用户显示密码字段。在进入系统并获得我真正想要的数据之前,我在这里遇到了一些障碍。如何处理这样一个场景,即在获取要获取的数据之前,需要先通过身份验证字段 我假设我可以直接使用httpclient和nokogiri,但我很好奇,在进入您的目标之前,在处理这样的两页登录时,是否有什么技巧。我会使用。第一个页面很“棘手”,

我需要从一个叫NetTeller的系统中搜集一些财务数据

可以找到一个例子

注意初始ID字段提示:

提交后,您必须输入密码:

如您所见,它有两个步骤,首先输入ID号,然后在提交后向用户显示密码字段。在进入系统并获得我真正想要的数据之前,我在这里遇到了一些障碍。如何处理这样一个场景,即在获取要获取的数据之前,需要先通过身份验证字段

我假设我可以直接使用
httpclient
nokogiri
,但我很好奇,在进入您的目标之前,在处理这样的两页登录时,是否有什么技巧。

我会使用。第一个页面很“棘手”,因为登录表单位于iframe中。因此,您可以只使用加载iframe的源。以下是如何:

agent = Mechanize.new

# Get first page
iframe_url = 'https://www.banksafe.com/sfonline/'
page = agent.get(iframe_url)
login_form = page.forms.first
username_field = login_form.field_with(:name => "12345678")

# Get second page
response = login_form.submit
second_login_form = response.forms.first
password_field = second_login_form.field_with(:password => "xxxxx")

# Get page to scrap
response = second_login_form.submit
这就是如何处理这样的场景。显然,您可能需要调整这些表单/字段的编写方式以及其他特定的页面细节,但我支持这种方法