R を使用して、文字列値に基づいて特定の Wikipedia ページに移動しようとしています。私が調べているキーワードのリストの正確なウィキペディアの URL を持っていないので (たとえば、「プログレッシブロック」という検索用語は、Progressive_rock で終わる URL に移動します)、キーワードを Google に渡すことを考えました。 Feeling Lucky」で検索し、結果のウィキペディア ページの HTML をスクレイピングします。
これを試す過程で、Rでフォームを送信するのに問題があることがわかりました.RセッションでGoogleクエリを実行し、トップページのHTMLを返す再現可能な例、またはWikipediaの検索に基づいて投稿できますか?検索ワード?
私はほとんどの Web スクレイピングに Hadley の優れた rvest パッケージを使用してきましたが、rvest のマニュアルから適用された例を使用しても、この側面を機能させることができませんでした。
goog<-html_session("https://www.google.com")
search <- html_form(html("https://www.google.com"))[[1]]
search.mod<-set_values(search, q = "My little pony")
submit_form(goog, search.mod, submit='btnI')
どちらが返されますか:
Error: length(url) == 1 is not TRUE
同じ運で、ウィキペディアの検索も直接試しました。
url<-"http://en.wikipedia.org/wiki/Main_Page"
wiki<-html_session(url)
search.form<-html_form(wiki)[[1]]
form.mod<-set_values(search.form, search="Frank Zappa")
submit_form(wiki,form.mod,submit='go')
同じエラーを返します。信じられないほど単純な間違いを犯しているのではないかと思いますが、それが何であるかわかりません。
検索フォームを送信するためのオンラインの例の多くは、httr、RCurl、および RSelenium パッケージを使用しているように見えますが、Google またはウィキペディアで機能する特定の例は見つかりませんでした。また、Google が「I'm Feeling Lucky」検索のフォーマット。同様の質問で提案されているように、WikipediRパッケージも調べました(Rを介したウィキペディアのSumbitクエリ)が、検索機能がないようです。