###java phantomJS ページ遷移
seleniumのようにブラウザを開くことなくスクレイピングを行うために、
phantomJSを用いてスクレイピングを行う方法を調べています。
特に、javaの中でphantomJSを使って、あるページの中のリンクを仮想的にクリックしてページ遷移する方法を考えています。
phantomJSDriver.get(url);
のようにドライバーにurlをセットしてから、
どのようにリンクをクリックし、
リンク先の情報を取得するのでしょうか。
java言語でphantomJSを操作する方法がわからないんです。
narita_takashiさん
ご回答ありがとうございます。
ならびに返信が遅くなり申し訳ありません。
質問の意味を私が誤解しておりました。
phantomjsはjavaのライブラリとしてサポートされていますので
javaの中でjavascriptを動かすライブラリ等を別に用意する必要はないと考えています。
また、phantomjsはseleniumのライブラリの中に組み込まれているものがあり、seleniumと同様の操作がある程度可能ということもわかりました。
ちなみに私がphantomjsを使おうとしている理由としましては、
1.ブラウザを実際にGUI上で起動する必要がない(処理が気持ち早い)
2.java上で動かすことができる
3.click操作によるクローリングが可能
点にひかれました。
これらを通して、質問内容が少し具体的になってきました。
画面遷移の方法
java環境にてphantomjsを使ってスクレイピングをする。
例えば、引数にStringでurlが投げられて
urlがhttp://baseball.yahoo.co.jp/
であったばあいに、
DesiredCapabilities cap = DesiredCapabilities.phantomjs(); cap.setJavascriptEnabled(true); System.setProperty("phantomjs.binary.path", PHANTOMJS_PATH); PhantomJSDriver driver = new PhantomJSDriver(cap); driver.get(url) driver.get(url + "/hsb/"); driver.findElement(By.xpath("//a[contains(text(),'日程・結果')]")).click(); driver.findElement(By.xpath("//body/a")).click();
という書き方があったときに(これでは実際に動かないが例として)最後のfindElementがうまく動作せずに
その後の処理がスルーされて終了してしまいます。
xpathはsseleniumIDEでテストの記録を行って得たものです。
・サイトURLによってclick操作が不可能なものがあるのでしょうか。
・というか、seleniumIDEでテストの記録を行ったものに対してそのままテストケースを実行したときにテストに失敗するのはどういうことなんでしょうか。
http://baseball.yahoo.co.jp/hsb/
を使って画面遷移しようとしたときのテストケースは失敗してしまいます(seleniumIDEにて)。
回答1件
あなたの回答
tips
プレビュー