ほつた@はてな

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

【Selenium】自動で3.11と検索して復興支援(平和的利用)をする(悪用厳禁)

プロフィールにもある通り、RubySeleniumを使ってスクリーンスクレイピングをするのが趣味な自分。

Seleniumは通常テストツールとして広く知られていますが、スクレイピングツールとしてもバリバリ使えて特にJavaScriptゴリゴリサイトではMechanizeは使えないのでこれを使うしかありません。
普通にブラウザポチポチ作業でもSeleniumBuilderを使えばすぐにシンプルなRubyスクリプトが作れて、幸せすぎます。
幸せすぎて趣味として1年くらいずっとSeleniumに嵌ってしまい遊んできました。
そんな自分のためなのか、腕試し(笑)の機会がやってきたのです。

https://pbs.twimg.com/media/CdMfajuUkAARz0Y.jpg

きっかけ

勢いでやってしまう

オープンソース(MITライセンス)で公開

github.com

その後

同じことを考えた方が登場。

gist.github.com

→滅茶苦茶磨きがかかってて自分のコードが恥ずかしすぎる。

しかもマサカリを投げていただいてすぐにリポジトリを削除してしまおうかと思いました。

実行方法(かなり割愛)

自分のコードはRuby突っ込んでSeleniumを動くようにしてChromeDriver突っ込めば動きます。 kumagiさんは狐のままでもfirefoxchromeと書き換えて上記のようにすれば動くはずです。

注意事項

あくまでもネタとして悪用厳禁でお願いします。

fukko.yahoo.co.jp

寄付について
・2016年3月11日0時00分から23時59分までに、「3.11」というキーワードで行われた検索が対象。この時間帯以外に行われた検索については寄付額算出に含まれておりません。
・「3月11日」「3,11」など、表記が異なるキーワードについては、原則として寄付額算出の対象となりません。
・検索者数はユニークブラウザーで集計しています。
寄付金の上限額は昨年実績を目安としています。昨年は合計2,918,278人(ユニークブラウザー数)が当日に「3.11」と検索し、29,182,780円を6団体に等分して寄付いたしました。
・最終的な寄付金額は3月14日に発表し、4月に、支援先として選定した10団体に等分して寄付させていただく予定です。
・寄付の完了後に、Yahoo!検索ガイドにて実施報告いたします。

→ふぁあああああああ
みんな去年より応援してるのに上限が去年とかないでしょorz

ユニークブラウザー数はIPアドレスユニークブラウザー数でカウントするのか気になりますね。
ちなみにcookieでカウントならちゃんとこれでカウントされます。
(ヤフオクとかログインしてない状態で更新するとカウントされる仕様とか色々と酷いのでおそらくIPアドレスでカウントしてこないでしょう。)

まとめ

Seleniumはポチポチ作業を自動化して時には世界に貢献をすることが出来る幸せなツールです。
本来はテストツールですがプログラミング初心者でもコピペで目に見えて動くSelenium(WebDriver)は感動そのものなので遊んでみてはいかがでしょうか。
自分のコードですが3分で作ってしまった結果、アンチパターンのsleepに頼りっぱなしで酷いです。 後で暇があれば書き換えておきたいです。

日本Seleniumユーザーコミュニティ

Seleniumの奥深い話まで気軽に聞けるコミュニティがあるのを見つけて加わり、本来はテストツールでテストとは何かテスト自動化の大切さを学んでいます。
おそらくスクレイピングに嵌っていなければテストについて全く知ることもなかったかもしれません。

www.selenium.jp

日本SeleniumユーザーコミュニティのSlackでは活発にSeleniumについて語られているので興味のある方は是非参加しましょう。

Join us seleniumjp on Slack!

以上、【Selenium】自動で3.11と検索して復興支援(平和的利用)をする(悪用厳禁)でした。