さて、久しぶりにブラウザの自動操作について調べてみる。
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のアドオンが便利です。
使い方は、別の機会に。
コメントする