おはようございます、皆さん、RSeleniumの問題
私はRSeleniumを使用して私の古いスクリプトを実行しようとしています。いくつかの変更のために、もう動作していません。元のコードは、私がここで見つける助言に従い
require(RSelenium)
require(rvest)
RSelenium::checkForServer()
RSelenium::startServer()
remDr <- remoteDriver()
remDr$open()
remDr$navigate(linkPlayersPage)
doc <- remDr$getPageSource()
doc <- read_html(doc[[1]])
path <- "//table[@class='playersquickfindtable']/tbody/tr/td/form/table/tbody/tr/td/div/img"
quickFind <- doc %>% html_nodes(xpath=path) %>% xml_attr("alt")
remDr$close()
だった、私は次のよう
require(RSelenium)
require(rvest)
driver <- rsDriver()
remDr <- driver[["client"]]
remDr$navigate(linkPlayersPage)
doc <- remDr$getPageSource()
doc <- read_html(doc[[1]])
path <- "//table[@class='playersquickfindtable']/tbody/tr/td/form/table/tbody/tr/td/div/img"
quickFind <- doc %>% html_nodes(xpath=path) %>% xml_attr("alt")
remDr$close()
のためにそれを変更することは、それが実際に動作しないということです。または、うまくいくこともありますが、最初は非常に遅く、2番目の問題(はるかに重要な問題)はスクリプトが非常に頻繁に停止します(11000を超えるビットを持つループがあります)。時にはしばらく待ってから停止した場所から再実行しても動作することもありますが、まったく動作しないこともありますが、動作するはずです。私は、次のエラー(申し訳ありませんが、それは英語とフランス語のミックスですが、いくつかのフランス語の単語が英語を話す人のために翻訳する難しいことではありません)
Error in if (!is.null(YD) && grepl("Draft", YD)) { : valeur manquante là où TRUE/FALSE est requis
FALSE/TRUEが必要とされる(欠損値を取得します)
checking geckodriver versions: BEGIN: PREDOWNLOAD Error in open.connection(con, "rb") : HTTP error 403.
時々私はいくつかの他のエラーを取得しますが、10" 最も一般的です。私は本当に何のアイデアなぜ、どのように問題を解決するためにはありません。
今日は新しいエラーが発生しました
checking geckodriver versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD checking phantomjs versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD Error in subprocess::spawn_process(tfile, ...) : could not create a pipe: system error message could not be fetched
これらのすべてがrsDriver()に関連していると感じています。私は読んで答えて
、それを行うための最善のことは、rsDriver()を使用するのではなく、ドッカーを使用しないことを述べています。昨日まで、私はこれが何であるか分かりませんでした。それが何をしているのか、それをRやRSeleniumと一緒に使う方法をはっきりと知ることができませんでした。例えばRSelenium through dockerです。私はリンクを試みたが、ページは表示されませんでした...
誰でもこれを修正するのに役立つでしょうか?私のrsDriver()問題を解決して100%実用的な解決策にしてもらえます。どうもありがとうございました。詳細については、私はOpenSuseを使っています(WindowsやMacシステムとは異なることがあるかどうかは分かりません)。
私が実行しているリストには、NFLのウェブサイトにプレーヤーのウェブページが含まれています。例はhttp://www.nfl.com/players/profile?id=00-0019290