2016-08-01 155 views

回答

0

你是如何检查HTML的?我问B/C这样:

<input id="textfield-1022-inputEl" data-ref="inputEl" type="text" size="1" name="userName" placeholder="Username" role="textbox" aria-hidden="false" aria-disabled="false" aria-readonly="false" aria-invalid="true" aria-required="true" class="x-form-field x-form-required-field x-form-text x-form-text-field-noborder x-form-invalid-field x-form-invalid-field-field-noborder x-form-empty-field x-form-empty-field-field-noborder" autocomplete="ON" data-componentid="textfield-1022" aria-describedby="textfield-1022-ariaErrorEl"> 

是用户名输入字段这样的:

<input id="textfield-1023-inputEl" data-ref="inputEl" type="password" size="1" name="password" placeholder="Password" role="textbox" aria-hidden="false" aria-disabled="false" aria-readonly="false" aria-invalid="true" aria-required="true" class="x-form-field x-form-required-field x-form-text x-form-text-field-noborder x-form-invalid-field x-form-invalid-field-field-noborder x-form-empty-field x-form-empty-field-field-noborder" autocomplete="ON" data-componentid="textfield-1023" aria-describedby="textfield-1023-ariaErrorEl"> 

是密码输入栏,这:

<form class="x-panel x-center-layout-item x-panel-indented" style="padding: 30px 0px 0px; width: 315px; right: auto; left: 0px; top: 0px; margin: 0px; height: 373px;" method="post" role="presentation" id="auth-login-1018"> 

的形式开始。

您应该考虑在本网站上使用rvest::html_session()或RSelenium。如果页面上没有很多动态元素,前者将会很好,并且会保留登录后生成的会话cookie。如果网站上有非XHR动态元素,后者将会很好。如果您尝试使用rvest解决方案,请考虑在建立初始会话并设置表单参数后使用rvest::submit_form()

绝大多数标签上的详细标记让我相信他们可能会使用一个js框架或两个试图是动态的,这可能意味着您将被迫使用RSelenium

+0

非常感谢! Rselenium正在工作。 – libgy8