さて、久しぶりにブラウザの自動操作について調べてみる。
2008年当時は、Google Chromeはリリースされたばかり(2008年9月2日)で、
IEは、Windows7も発売前なのでIE8もなくIE7が最新、
Firefoxは、バージョンは3.0(現在は45)という時代だった。
当然ながらIEが主流だったし、ブラウザの自動操作を行うのもIE以外は考えられなかった。
なんで、VBやVCを使ってDLLの中身を解析しながらプログラムしていたのが、懐かしい。
で、今や便利な世の中になったものでブラウザの自動操作をするのにSeleniumという
ツール(フレームワーク)が登場した。
元々は、ブラウザを使ったWebアプリケーションの開発で、
ブラウザ操作のテストを自動化するために、作られたフレームワーク。
人が手でブラウザを操作する代わりにSeleniumがブラウザを操作してくれる。
当時からSeleniumがあれば、数年前に作ってたブラウザ自動操作アプリが
もっと簡単に作れたのに・・・。
嘆いても、しょうがないので、さっそく使ってプログラムを作ってみます。
まずは、こちらからSeleniumをダウンロード。
プログラム言語は、Java, C#, Ruby, Python, Javascriptからお好きなものを選べます。
今回は、Javaでプログラミングしてみます。
そして、インストールと開発環境の設定。今回はJavaということで、Eclipseを使用。
こちらのサイトを参考にしました。
楽天スーパーサーチで自動検索して、山分けポイントをGetするプログラムを作ってみます。
ブラウザはFirefoxを対象にしました。
1秒以内に、検索結果が表示されないと次の単語の検索が失敗しますが、
検索結果が表示されるまで、再試行をするようになっています。
このプログラムを動かせば、5口ゲットです。
楽天ツールバーをインストールしていれば、30口まで検索できるはず
なのですが、残念ながら生成したドライバのウィンドウには楽天ツールバーが
表示されないので、5口までとなります。
30口検索するなら、iMacrosというFirefoxのアドオンが便利です。
使い方は、別の機会に。
2008年当時は、Google Chromeはリリースされたばかり(2008年9月2日)で、
IEは、Windows7も発売前なのでIE8もなくIE7が最新、
Firefoxは、バージョンは3.0(現在は45)という時代だった。
当然ながらIEが主流だったし、ブラウザの自動操作を行うのもIE以外は考えられなかった。
なんで、VBやVCを使ってDLLの中身を解析しながらプログラムしていたのが、懐かしい。
で、今や便利な世の中になったものでブラウザの自動操作をするのにSeleniumという
ツール(フレームワーク)が登場した。
元々は、ブラウザを使ったWebアプリケーションの開発で、
ブラウザ操作のテストを自動化するために、作られたフレームワーク。
人が手でブラウザを操作する代わりにSeleniumがブラウザを操作してくれる。
当時からSeleniumがあれば、数年前に作ってたブラウザ自動操作アプリが
もっと簡単に作れたのに・・・。
嘆いても、しょうがないので、さっそく使ってプログラムを作ってみます。
まずは、こちらからSeleniumをダウンロード。
プログラム言語は、Java, C#, Ruby, Python, Javascriptからお好きなものを選べます。
今回は、Javaでプログラミングしてみます。
そして、インストールと開発環境の設定。今回はJavaということで、Eclipseを使用。
こちらのサイトを参考にしました。
楽天スーパーサーチで自動検索して、山分けポイントをGetするプログラムを作ってみます。
ブラウザはFirefoxを対象にしました。
package rakuten.search; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class UseDriver { // ログインURL static final String URL = "https://websearch.rakuten.co.jp/login.html"; // ログインユーザID static final String USER_ID = "xxxxxxxxxx"; // TODO 変更 // ログインパスワード static final String PASSWORD = "xxxxxxxxxx"; // TODO 変更 // ドライバ static WebDriver driver = null; // 検索するワード static String[] keywords = { "Google", "Firefox", "Facebook", "Twitter", "Line" }; public static void main(String[] args) { // Firefoxのドライバを生成 driver = new FirefoxDriver(); try { // ログイン driver.get(URL); WebElement userId = driver.findElement(By.name("u")); userId.sendKeys(USER_ID); WebElement passwd = driver.findElement(By.name("p")); passwd.sendKeys(PASSWORD); passwd.submit(); } catch (Exception e) { return; } // 全ワード検索を行う。 int i = 0; while(i < keywords.length) { if (search(i)) { i++; } } driver.quit(); } private static boolean search(int i) { String key = keywords[i]; try { // ページがロードされ終わるまで待つ。 // 1秒のタイムアウトを設定。 Thread.sleep(1000); // 検索ワードのテキストボックスを取得。 WebElement search = driver.findElement(By.name("qt")); // 検索する単語を入力。 search.clear(); search.sendKeys(key); // フォームをサブミット。 search.submit(); return true; } catch (Exception e) { return false; } } }
1秒以内に、検索結果が表示されないと次の単語の検索が失敗しますが、
検索結果が表示されるまで、再試行をするようになっています。
このプログラムを動かせば、5口ゲットです。
楽天ツールバーをインストールしていれば、30口まで検索できるはず
なのですが、残念ながら生成したドライバのウィンドウには楽天ツールバーが
表示されないので、5口までとなります。
30口検索するなら、iMacrosというFirefoxのアドオンが便利です。
使い方は、別の機会に。
コメントする