2017-07-20 4 views
0

私は実際に保護されたデータを掻き集めるためにこのサイト(http://bit.do)を記録しようとしています。R:ログインjavascriptフォーム

私はこのアプローチを前の質問で設立しましたが、うまくいきませんでした。

library(rvest) 
url  <-"http://bit.do/#login/admin" 
pgsession <-html_session(url) 

pgform <-html_form(pgsession)[[2]] 
filled_form <- set_values(pgform, 
        "username" = "username", 
        "password" = "password") 

submit_form(pgsession,filled_form) 

が、私は私はこの得た(pgform)を頭にしようとしたとき: $名 [1] "" $方法 を[1] "" $ URL NULL $のenctype [1をGET ] "フォーム" $フィールド を '': '': '': '': '':サインアップ

私が期待したものとは全く異なっています。多分それはコードのためですか?私は知らない、これが私に与えることができる唯一の理由です。しかし、もしそれがjavascript(htmlの代わりに)にあるなら、私はどのようにして仕事をすることができますか?

答えて

0

あなたは他のリクエストでそのクッキーを使用し、その後クッキーを構築するための情報を取得する必要があります:

library(httr) 

POST(
    url = "https://inauth.insite.com.br/mod_perl/login.pl", 
    body = list(
    user_username = "YOUR_USERNAME", 
    user_password = "YOUR_PASSWORD", 
    lang = "en", 
    cookies = "no", 
    action = "chklogin", 
    app_id = "bit.do", 
    cookie_name = "InAuth-bitdo", 
    keep_logged_in_days = "5475" 
), 
    add_headers(
    `Referer` = "http://bit.d o/", 
    `Origin` = "http://bit.d o", 
    `X-Requested-With` = "XMLHttpRequest" 
) 
) -> res 

user_login_info <- content(res, as="parsed") 

GET(
    url = "https://bit.d o/admin", 
    add_headers(`Referer` = "http://bit.d o/"), 
    set_cookies(`InAuth-bitdo` = user_login_info$auth_cookie_value) 
) -> res 

NOTE !!!! dob/cの間にスペースを入れなければならず、SOバリデーターは脳死です。

彼らは私が彼らがあなたの使用を期待していると思う有料APIを持っていますが、私は一目瞭然で分かるものからこの掻き取りを禁止していません。

+0

こんにちは、ありがとうございました。残念ながら私は初心者ですし、あなたのコードを完全に理解することはできません。あなたがここで何をしたのかを親切に説明してください。つまり、3番目のサイトからどのように認証することが可能ですか?なぜ私はinauth.insite.com.brに行くのですか?あなたがコードに入れたすべての情報をフォームに記入することはできませんが、ユーザー名とパスワードだけで記入してください。また、それは私に何かエラーを返すことはありません、私はすべてがうまくいくと思いますか?その後、パスワードで保護されたデータにアクセスしようとしましたが、ログインしていないようです。 – condom

+0

基本的なネットワーキングとプロトコルの仕組みを学び、HTTPのやりとりがどのように機能し、どのようにWebアプリケーション彼らがどのように働いているかを追跡する方法。私ができることは、このサイトが認証用の第三者(多くの場合、アプリケーションの多くでは中央のもの)を使用し、それからセッションクッキーを取得して元のサイトリソースを認証することです。これは、このアプリが動作する方法です。それ以外の場合は、ブラウザのDeveloper Toolsチュートリアルを試してください。 – hrbrmstr

+0

絶対に私はそれをしなければなりません。 Btw今私はこの問題を解決する必要があります。提案していただきありがとうございますが、もう少しお手伝いが必要です。私はあなたのコードを実行しようとしました(私のbit.doユーザー名とパスワードで、右か?)、エラーは出ませんでしたが、私はデータをスクラップしようとしたときに私がログインしていないかのように保護されたデータにアクセスできませんでした。 url < - 'http://bit.do/admin/PROTECTED_DATA_PAGE' data_page < - read_html(url) data < - html_nodes(data_page、 '。CSS_SELECTOR') – condom