2016-08-01 176 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