GCPにRStudio Serverを立ててRSeleniumでスクレイピング
はじめに
前にRseleniumでWEBページのスクレイピングを行いました。(こちら)
手元のマシンで行うと、スクレイピング間隔をあけていることや、対象ページが多いことから、結構時間がかかってしまいます。
また、自分のマシンからやってBANされても嫌だなと思ってGCPからスクレイピングしてみました。
GCP初心者でしたが、GCPを用意し、RStudio ServerとRSelenium Serverを立ててスクレイピングを試みました。
メモ程度の内容です。
GCPの設定
GCEでVMインスタンスを立てました。
マシンタイプ:n1-standerd-1
ブートディスク:Ubuntu 16.04LTS
ファイヤウォール:HTTP/HTTPSトラフィックを許可するをチェック
Dockerを使ってRStudio Serverを立てる
GCPの設定
外部からアクセスできる様にファイヤウォールルールを設定しました。
設定のページがわかりにくかったです。
GCPトップページ → メニュー → ネットワーキングのVPCネットワーク → ファイヤウォールルール
次の様な設定を作成しました。
名前: allow-rstudio
トラフィックの方向: 上り
ソースIPの範囲: 0.0.0.0/0
指定したプロトコルとポート: tcp:8787
ターゲットタグ: allow-rstudio
そして、インスタンスの設定でターゲットタグに「allow-rstudio」を追加します。
RStudio Serverを立てる
RStudioのdockerイメージにtokyor/rstudioを利用しました。
docker pull tokyor/rstudio
docker run -d -p 8787:8787 tokyor/rstudio
これでhttp://<インスタンスのグローバルIP>:8787にアクセスします。
Rstudio serverのログイン画面が出れば成功です。
次のusernameとpasswordでログインできます。
username: rstudio
password: rstudio
Dockerを使ってRSelenium Serverを立てる
GCPの設定
外部からアクセスできる様にファイヤウォールルールを設定しました。
名前: allow-selenium
トラフィックの方向: 上り
ソースIPの範囲: 0.0.0.0/0
指定したプロトコルとポート: tcp:4444
ターゲットタグ: allow-selenium
インスタンスの設定でターゲットタグに「allow-selenium」を追加します。
seleniumサーバーを立てる
dockerイメージを持ってきます。
docker pull selenium/standalone-chrome
dockerコンテナを立ててseleniumサーバーを立てます。
docker run -d -p 4444:4444 selenium/standalone-chrome
これでhttp://<インスタンスのグローバルIP>:4444にアクセスします。
seleniumのページが表示されれば成功です。
いざ、スクレイピング
あとは、RStudio Serverにアクセスして、前回記事の内容に従ってスクレイピングをおこないました。
いい感じに1年間分のスナップ情報を取得できました。
以上です。
参考
Author And Source
この問題について(GCPにRStudio Serverを立ててRSeleniumでスクレイピング), 我々は、より多くの情報をここで見つけました https://qiita.com/saltcooky/items/87b8dbd858deaa754374著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .