はてな や ミクシー、いろんなサイトがあります。通常、このサイトは人の手でマウスを動かして閲覧しますが、これらをプログラムで行うことは可能なのでしょうか?
たとえば、IDとPASSを入れ込んでログイン、そのまま日記のページ全てを閲覧して保存、といった感じです。
おそらく自分の予想では可能だと思うのですが、それが可能だとした場合、プログラム言語は何を使うのが最もよいのでしょうか?(JAVAかな・・・?)
もし自動で、動いてくれるプログラムの作り方や解説などのサイト、もしくはそれらが書かれている書籍などがありましたらご紹介ください。
最終的に一定時間ごとにIDとPASSを入れ込んで目的のサイトにアクセス、POSTを投げ、目当てのデータを受け取る………といったことがやりたいです。
Rubyで紹介すると
IEを自動操縦
ブラウザテストをRubyで自動化「Watir」
http://www.moongift.jp/2007/09/watir/
操作をRubyで記録してくれます。
http://route477.net/rubyscraping/
ここらへんに色々載っています。
RubyによるWeb Scrapingライブラリの情報をまとめるためのWikiです。
Nokogiri
HTMLをjQuery風に操作するライブラリ。Hpricotの書き直し版
Hpricot
HTMLを「Rubyらしく」扱うライブラリ
Mechanize
Webサイトへ自動でアクセスするためのライブラリ
scRUBYt!
DSLを使って簡単にスクレイピングを行うライブラリ
feedalizer
htmlからRSSフィードを作るのに役立つライブラリ
scrAPI
パーサを定義することでHTMLを解析するライブラリ
また、はてなやmixiはAPIがあるので、そちらで可能なことであればAPIを使った方が楽です。
広く言えば、どんな言語でも可能です。
一般的に、PHP、Java、Ruby、PerlなどならHTTP通信やCookieを簡単に扱うためのライブラリが用意されているので、自分ではプログラムのロジックを書くのみで実装できると思います。
例えば、これらのHTTPクライアントを利用する。
Javaならこれ:
http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/h...
PHPならこれ:
AutoMouse
http://www.vector.co.jp/soft/win95/util/se074062.html
画面上の画像をキーに、マウスやキーボード操作を自動化できます。
ブラウザの外(スタートボタンなど)も操作可能です。
認証画面が出たらID欄へマウスを移動し、IDを入力、パスワードも同様に入力してログオンボタンをクリックなどの動作ができると思います。
http://download.goo.ne.jp/software/category/win/util/operate/
自動化するソフトがあります。
また IDとパスワードを入れるだけならば ロボフォームなどのソフトもあります。
通常、自動化のプログラムを作る場合、SendKeysというものを用いることがありすまね。
http://www.javaroad.jp/bbs/answer.jsp?q_id=20061212035623540
Rubyで紹介すると
IEを自動操縦
ブラウザテストをRubyで自動化「Watir」
http://www.moongift.jp/2007/09/watir/
操作をRubyで記録してくれます。
http://route477.net/rubyscraping/
ここらへんに色々載っています。
RubyによるWeb Scrapingライブラリの情報をまとめるためのWikiです。
Nokogiri
HTMLをjQuery風に操作するライブラリ。Hpricotの書き直し版
Hpricot
HTMLを「Rubyらしく」扱うライブラリ
Mechanize
Webサイトへ自動でアクセスするためのライブラリ
scRUBYt!
DSLを使って簡単にスクレイピングを行うライブラリ
feedalizer
htmlからRSSフィードを作るのに役立つライブラリ
scrAPI
パーサを定義することでHTMLを解析するライブラリ
また、はてなやmixiはAPIがあるので、そちらで可能なことであればAPIを使った方が楽です。
私はVBAでやっています。
マイクロソフトオフィス(EXCEL・WORD等)のVBAを使って、Internet Explorerをコントロールするか、
コントロール・ツールボックスの部品でWebBrowserを使用すれば可能です。
IDとPASSの入力やクリック、データの取得は表示した内容をDocumentオブジェクトを使って対応出来ます。
http://makotowatana.ld.infoseek.co.jp/vba_internet.html
【IEを使用した「はてな」のログインサンプル】 ※"ID","PASS"を訂正して下さい。 Sub Login() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") With objIE .Visible = True .Navigate "https://www.hatena.ne.jp/login" Do While objIE.Busy = True: Loop Do While objIE.document.ReadyState <> "complete": Loop .document.all.Name.Value = "ID" .document.all.Password.Value = "PASS" .document.all.Item(43).Click End With End Sub
ヤフオクとmixiで出来ましたというか、しましたよ。(´ー`)y-~~。
http://q.hatena.ne.jp/1242080378
phpの場合、PEAR::HTTP_Clientを使うのがキモです。
コメント(1件)