2016-09-01 8 views
2

私のファンタジーリーグにアクセスするには、Rを使用してYahooにログインしようとしています。私はYahoo login using rvestでコーリーのコードに従っていますが、成功はありません。私は次のエラーを取得するフォーム提出しようとすると は:RとrvestでYahooにログイン

Error: Unknown submission name 'signin'. Possible values: passwd

を私は変数あるmyFormをチェックするとき、私は次のように気づいた:

 <button submit> 'signin 

送信ボタン名にはクロージングチルダはありません。提出ボタンが認識されない原因になりますか?

また、ユーザー名/電話の確認方法の代わりにユーザー名/パスワードを使用しています。

提出を1回することはできますか?ログインフォームの「次へ」ボタンを押すたびに、最初と2番目のページが同じであることに気付きました.yahooは単にユーザー名フィールドを隠すだけです。ここで

はコメント行が@coryの元のコードにあったDave2e

library(rvest) 
username <- "xxxx" 
passwd <- "xxxxxx" 
league_id <-"yyyyyyy" 

uastring <- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
url <- "http://football.fantasysports.yahoo.com/f1/" 
url <- paste0(url, league_id,"/players") 
s <- rvest::html_session(url, httr::user_agent(uastring)) 
myform <- rvest::html_form(s)[[1]] 
myform <- rvest::set_values(myform, username=username) 
# s <- suppressWarnings(rvest::submit_form(s, myform, submit="signin")) 
s <- rvest::submit_form(s, myform, submit="signin") 

@コードです。

+0

なぜセレンドライバを使用してクリックアクションを操作しようとしませんか? – amrrs

+0

しようとしているコードを投稿すると、以前の投稿を参照するのとは対照的に役立ちます。 – Dave2e

+0

@ amrrsに答えると、私はセレンを知らず、自分自身を教えようとしています。私はちょうど私が学ぶのを助けるために私のファンタジーのサッカーリーグを興味のある項目として選んだ。 – Pepebuho

答えて

1

それ以来、コードを変更する必要がありました。私はヤフーが送信ボタンや何かを変更したと思う...ここで私のために働くものは、1つの注意点、時々、私はそれを2回実行する必要があります。なぜか、私はそれを実行する最初の時間、私はエラーを打つが、2回目に動作しますが、わからない。

また、私はpackage on githubに入れました。 devtools::install_github("corynissen/yahooFantasySports")でインストールできます。そこには2つの機能しかありません。ログインする人と、それぞれのポジションのフットボール選手のリストをダウンロードする人がいます。私はそれを私のファンタジードラフトの準備に使った。

login <- function(league_id, username){ 
    if(nchar(league_id)!=6){stop("league_id must be six characters")} 
    if(!is.character(username)){stop("username must be a character string")} 

    uastring <- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
    url <- "http://football.fantasysports.yahoo.com/f1/" 
    url <- paste0(url, league_id) 

    s <- rvest::html_session(url, httr::user_agent(uastring)) 
    myform <- rvest::html_form(s)[[1]] 
    myform <- rvest::set_values(myform, username=username) 
    #s <- suppressWarnings(rvest::submit_form(s, myform, submit="signin")) 
    s <- suppressWarnings(rvest::submit_form(s, myform)) 
    s <- rvest::jump_to(s, s$response$url) 
    myform <- rvest::html_form(s)[[1]] 
    if("code" %in% names(myform$fields)){ 
    code <- readline(prompt="In your Yahoo app, find and click on the Account Key icon.\nGet the 8 character code and\nenter it here: ") 
    }else{ 
    print("Unable to login") 
    return(NULL) 
    } 
    myform <- rvest::set_values(myform, code=code) 
    s <- suppressWarnings(rvest::submit_form(s, myform, submit="verify")) 
    if(grepl("authorize\\/verify", s$url)){ 
    print("Wrong code entered, unable to login") 
    return(NULL) 
    }else{ 
    print("Login successful") 
    } 
    s <- rvest::jump_to(s, s$response$url) 
    return(s) 
} 
+0

ありがとう!それは魅力のように働いた。 私は電話からそれを行うために私のアカウントのログインを変更する必要がありました。ユーザー/パス作業を使用して変更を行うことはできませんでした。もっと勉強する必要があります。また、プレイヤーデータ関数を取得するためにいくつかのタッチを追加しなければなりませんでした。ちょうど週のヘッダーを追加して、S_SをS_PSに変更して、昨シーズンの結果ではなく予測を選んでください。 – Pepebuho

関連する問題