ほつた@はてな

ほつたが技術的な事や個人的な出来事を中心に投稿します。

初心者でも簡単!RubyでSeleniumスクレイピングや面倒な操作を自動化してしまおう(パート2)

前回の続き。

スクショとか取って頑張ろうと思いましたが面倒なので暇な時に追記したりしたいと思います。

hotuta.hatenablog.com

 

もう前回の記事を書いてからかなり間が空いてしまったので気になって調べてしまった人、もう知っている人が多いと思うけど。
実はChromeWebDriverをダウンロードしてbinフォルダに入れないと動かないんだ。
(もう知ってるって…)
 
という事でダウンロードして突っ込もうと思う。

sites.google.com

直リン

本家だと何故かダウンロード先URLを示してるtxtファイルしかダウンロード出来ない。
ダウンロード先URLを記載していない理由があるかも知れないが下に書いてしまう。

 
ダウンロード出来たら解凍した中身のファイルをCドライブとかにあるRuby200の中のbinフォルダに入れよう。
それで実行だ。
上手く行ったかな?
 
 
 
導入は以上。
これでページ遷移、クリックくらいは無知識でもSeleniumBuilderを使って自分で記録を取り、再現をしてしまえばいい。
サイトの仕様変更でいちいち再現してられないだって?
それなら修正をすればいい。
htmlやcssの知識が無いと厳しい部分が多いと思う。
そんな時に猿でも使えるのがxpathだ。
xpathなんかよりcssの方が良いらしいです。)
 
まあ試しにチョロメを立ち上げてみよう!
そしてF12クリックしてみよう。
なんか英語でよく分からないバーが出てくる。
Developer Toolsだ。
初めて見たい人は何だこれと思うがこれ滅茶苦茶便利なんだ。
これを使って簡単にxpathcssを取得出来てしまえるのだから。
 
適当な所を右クリック、要素を取得
右クリックでxpathまたはcssを選択。
取得したら終わり。
 
wd.find_element(:xpath, "//div[4]/div[5]/div[3]/div/div/div/div[2]/div/div[1]/div/div[4]/table/tbody/tr[1]/td/div/div/div[1]").click
をの箇所を編集するとしよう。
該当箇所を右クリックして要素の取得を選択して右クリック、xpath
//*[@id="Submit"]と取得したら
""の間に入れてあげれば良いけど・・・。
driver.find_element(:xpath, "//*[@id="Submit"]").click
 
これではエラーが出るのです…
xpathは""ダブルで括れないんだ。
driver.find_element(:xpath, '//*[@id="Submit"]').click
という感じ対処。
 
 
(続く)