問題タブ [rselenium]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - このサイトからデータをスクレイピングする方法に困惑しました (R を使用)
このサイトから R を使用してデータをスクレイピングしようとしています: http://www.soccer24.com/kosovo/superliga/results/#
私は次のことができます:
しかし、実際にデータにアクセスする方法に困惑しています。これは、ウェブサイト上の実際のデータが Javascript によって生成されているように見えるためです。私にできることは
しかし、それは奇妙なテキストの長いぼやけを与えます(データは含まれていますが、奇妙なコードが散在しており、それをどのように解析するかはまったく明確ではありません.
抽出したいのは、すべての試合の試合データ (日付、時間、チーム、結果) です。このサイトのその他のデータは必要ありません。
このサイトからそのデータを抽出する方法について、誰かヒントを提供できますか?
r - サイトによって生成されたドキュメントをキャッチする方法 (R を使用)
次のように pdf ファイルをダウンロードしようとしています (これは商用サイトであるため、以下の URL、ユーザー名、およびパスワードを置き換える必要がありました)。
これは、企業の相互作用に関するデータを含む Web サイトです。APIを知っているので、興味のある各レポートのページ名を見つけました。ページには「pdfをダウンロード」ボタンがあります。このボタンをクリックすると、サイトは動的にレポートを pdf 形式で生成し、レポートを返します (「97da08491e3e41447f591c2b668c0602.pdf」のようなランダムな名前で)。これには wkhtml2pdf を使用していると思います。次のコードを使用してボタンをクリックします。
「pdf をダウンロード」ボタンをクリックすると、サイトによってドキュメントが生成され、Chrome によって保存されます。(ランダムな名前は毎回異なり、download.file()
取得するようなものを使用する方法はありません)ドキュメントがこのランダムな名前で保存されることを除いて、これは正常に機能します。むしろ、サイトから返された pdf をキャプチャし、より有益な名前を使用して保存したい (これを何百回も行う必要があるため、すべての pdf を手動で順番に処理する必要はありません)特定の企業に関するレポートを見つけるには)。
だから、私の質問は次のとおりです。サイトによって動的に生成されて返される pdf をキャプチャし、自分で選択した名前で保存するにはどうすればよいですか?
(サイトへのリンクを提供できないことをお詫びしますが、これは私が公に共有することを許可されていない独自のサイトです。ただし、この問題がより多くの人やサイトに役立つことを期待しています)。
r - RSelenium エラー: NotConnectedException
SO (Question 1)、(Question 2)で既に尋ねられたこの質問に似た質問がいくつかありますが、いずれも回答を受け取っていません (最後の質問には、OP に問題を報告するように指示する @jdharrison による関連コメントがあります)。これは私の問題です:
以前は、Web サイトから R に情報を取得するための非常に単純なスクリプトがありました。
スクリプトを実行しようとするとrd$open()
、Firefox ウィンドウが開き (約 30 秒間空白のまま)、閉じてエラーが返されます。
SO やその他のサイトのさまざまな投稿を読んでみると、問題は firefox と RSelenium のバージョンの非互換性が原因のようです。
GitHub のセレン フォーラムには、セレンを 2.44 から 2.45 に更新すると問題が解決したと述べられているスレッドがあります。しかし、RSeleniumが最新のように見える場合、Seleniumを更新する方法についてはわかりません。
そして私のビルド(おそらく犯人):
Rからセレンを更新するにはどうすればよいですか(もちろん、それが理にかなっている場合)?,
さらに良いことに、以前に動作していたスクリプトで表示されているエラーを回避するにはどうすればよいですか?
ありがとう!
r - R を使用してトリップアドバイザーからデータをスクレイピングする
Trip Advisor から一部のデータをスクレイピングするクローラーを作成したいと考えています。理想的には 、 ( a)クロールするすべての場所へのリンクを特定し、 (b)各場所のすべてのアトラクションへのリンクを収集し、 (c)すべてのレビューの目的地名、日付、および評価を収集します。ここでは、(a) の部分に焦点を当てたいと思います。
これが私が始めているウェブサイトです: http://www.tripadvisor.co.nz/Tourism-g255104-New_Zealand-Vacations.html
ここに問題があります。リンクは、最初にトップ 10 の目的地を提供し、次に [人気のある目的地をもっと見る] をクリックすると、リストが展開されます。これを実現するためにJavaScript関数を使用しているように見えます。残念ながら、私は JavaScript に詳しくありませんが、次のチャンクがその仕組みについての手がかりになると思います。
rvest、RSelenium、XML、RCurlなど、R用の便利なWebスクレイピングパッケージをいくつか見つけましたが、これらのうち、RSeleniumだけがこれを解決できるようです。アウト。
関連するコードを次に示します。
ここでは最後の行でうまくいくはずですが、ここでどの関数を呼び出す必要があるのか わかりません。
このリストを拡張すると、パート (b) を解決するのと同じ方法で各目的地へのリンクを取得できるようになります。これは既に解決済みだと思います (興味のある人向け)。
ステップ (c) に関しては、そのために役立つリンクをいくつか見つけました: https://github.com/hadley/rvest/blob/master/demo/tripadvisor.R http://notesofdabbler.github. io/201408_hotelReview/scrapeTripAdvisor.html
上位の目的地のリストを拡大する方法や、他の手順をよりスマートに進める方法についてのヒントがあれば、お知らせください。ぜひご連絡をお待ちしております。
よろしくお願いします!
r - Rを使用したWebスクレイピングパスワードで保護されたWebサイト
Rを使用してyammerデータをWebスクレイピングしたいのですが、そのためにはまずこのページにログインする必要があります(これは私が作成したアプリの認証です)。
https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg
このページにログインすると、yammer データを取得できますが、これはすべて、標準の yammer URL ( https://www.yammer.com/api/v1/messages/received.json )によってブラウザーにあります。
同様の質問を読み、提案を試みましたが、それでもこの問題を解決できません。
httr,RSelenium,rvest+Selector ガジェットを使ってみました。
ここでの最終目標は、Rですべてを行うことです(データの取得、クリーニング、感情分析...クリーニングと感情分析の部分は完了しましたが、現時点ではデータの取得部分は手動であり、Rから処理することで自動化したいと考えています)
1.httrを使って試す:
対応する結果: 応答 [https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg] Date: 2015-04-27 12:25 Status: 200 Content-Type: text/html; charset=utf-8 サイズ: 15.7 kB このページのコンテンツは、ログイン ページを開いたものの、認証されなかったことを示しています。
2.セレクターガジェット+rvestでお試し
この方法を使用してウィキペディアをスクレイピングしようとしましたが、セレクターガジェットが提供するhtmlタグを呼び出す前に認証が必要になるため、yammerに適用できませんでした。
3.RSeleniumを使ってみる
標準のブラウザとphantomjsを使用してこれを試しましたが、いくつかのエラーが発生しました
remDr <- remoteDriver$new()
remDr$open() [1] 「リモート サーバーに接続しています」 RCurl 呼び出しで未定義のエラーが発生しました。queryRD(paste0(serverURL, "/session"), "POST", qdata = toJSON(serverOpts)) のエラー:
phantom() のエラー: PhantomJS バイナリが見つかりません。