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