これはあなたの問題を解決するものではありません(RSeleniumを使用するのに役立つたくさんのRSelenium SOレスポンスとブログ記事があります)が、このサイトでは "なぜ"あなたは醜いのですか? RSeleniumのアプローチが動作するには、URLを使用して起動する必要があります)。
このサイトでは、JavaScriptと一緒にサーバーサイドで「Java Server Faces」を使用して、状態と拡張のナビゲーションを維持しています。実際ににはからhttps://www.efast.dol.gov/portal/app/disseminateに開始するので、バックエンドで正しくセッションを開始できます。
次の2つのフィールドに入力したら、それは(フォーマット「のcURLとしてコピー」で)次のようになりますPOST
要求を行う:
curl -i -s -k
-X 'POST'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:43.0) Gecko/20100101 Firefox/43.0'
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Faces-Request: partial/ajax'
-H 'X-Requested-With: XMLHttpRequest' -H 'Referer: https://www.efast.dol.gov/portal/app/disseminate?execution=e1s1'
-b 'JSESSIONID=0000UG27GxfJ4sVgFVXnUi3Ix9C:18fl2akcj'
--data-binary $'javax.faces.partial.ajax=true&javax.faces.source=form%3Anextbtn&javax.faces.partial.execute=%40all&javax.faces.partial.render=form&form%3Anextbtn=form%3Anextbtn&form=form&planName=&sponsorName=&administratorName=&filingId=&ackId=&ein=060646973&pn=001&form%3Aj_idt939%3Apybcalendar_input=&form%3Aj_idt942%3Apyecalendar_input=&formYear=&form%3AnumResults_input=100&form%3AnumResults_editableInput=100&javax.faces.ViewState=e1s1'
'https://www.efast.dol.gov/portal/app/disseminate?execution=e1s1'
私はあなたが追加フィールドのいくつかを見てみましょうすることを投稿最初に<form>
に直接送信されないものを送信します。
POST
のようなものであることをそれに応じて:のJava ServerはAJAXが最終的に提供<<table role="treegrid">
(の実際の結果と結果ページにリダイレクトされるように、あなたの原因となる応答をリダイレクト顔
HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Cache-Control: no-store
X-Powered-By: JSF/2.0
X-Powered-By: JSF/2.0
X-UA-Compatible: IE=EmulateIE7
Content-Type: application/xml; charset=UTF-8
Content-Language: en-US
Date: Fri, 23 Dec 2016 13:10:26 GMT
Content-Length: 142
Connection: keep-alive
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><redirect url="/portal/app/disseminate?execution=e1s2"></redirect></partial-response>
それが返す恐ろしいHTMLの表をターゲットにするのに役立ちます)。
次に、チェックボックスをクリックして情報をダウンロードする方法を理解する必要があります。
自動ナビゲーションで誤った手順を実行すると、セッションが切断されます。だから、あなたは退屈な試行のために&エラーが発生する可能性がありますターゲットの選択操作が正しいことを確認します。
Filing ID、Acknowledgement IDなどの他の検索パラメータを共有できますか。 –
フォーム記入には 'RSelenium'が必要です。' rvest'だけでそれを行うことができれば驚くでしょう。 –