50pt
id:hasegawayosukeの変態スクリプトを使うと出来ます。
// ユーティリティ関数 var _util = { cat : function(f){return (new ActiveXObject("Scripting.FileSystemObject")).OpenTextFile(f,1,false).ReadAll();} }; // 偽 window、偽document、グローバルオブジェクトの準備 (function(){ if( typeof( document ) == "undefined" ){ document = new ActiveXObject( "htmlfile" ); document.write("<html></html>"); } if( typeof( window ) == "undefined" ) window = document.parentWindow; if( typeof( alert ) == "undefined" ) //alert = window.alert; alert = function(s){ return window.alert( s )}; if( typeof( confirm ) == "undefined" ) confirm = function(s){ return window.confirm(s) }; if( typeof( location ) == "undefined" ) location = window.location; if( typeof( navigator ) == "undefined" ) navigator = window.navigator; if( typeof( clearInterval ) == "undefined" ) clearInterval = function(id){ return window.clearInterval( id ); }; if( typeof( clearTimeout ) == "undefined" ) clearTimeout = function(id){ return window.clearTimeout(id); }; if( typeof( setInterval ) == "undefined" ) setInterval = function(code, interval){ return window.setInterval(code, interval); } if( typeof( setTimeout ) == "undefined" ) setTimeout = function(code, delay){ return window.setTimeout(code, delay); } })(); // jQueryの読み込み eval( _util.cat( "jquery-1.3.2.js" ) ); var complete = 0; $.ajax( { url : "http://q.hatena.ne.jp/1259814347", dataType : "text", type : "get", async : true, success : function( text ){ alert($('h1.question-header', $(text)).text()); complete = 1; } } ); for( var i = 0; i < 100; i++ ){ WScript.Sleep( 30 ); if( complete == 2 ) break; }
コマンドプロンプトから
C:\>cscript hasegawayosuke-daisuki.js
とすると、このページの質問文がスクレイピングされメッセージボックスで表示されます。
※スクリプト名は気にしないで下さい。
10pt
WSH(Windows Scripting Host)で実現できます。
言語は、VBScriptまたはJScriptです。
前者は拡張子がvbs、後者はjs
1.
コマンドラインからたたくには、
http://d.hatena.ne.jp/seiunsky/20081130/1228066957
cscript test.js 1 aiueo "引数"
のようにします。
2.
HTMLを取得するには、
XMLHttpRequest オブジェクトを使用します。
http://webos-goodies.jp/archives/50548720.html
3.jquery の使用は難しいでしょう。
できないとは言い切れないので明言は避けます。
それと、HTMLのDOMをパースできるかどうか不明です。XMLなら可ですが。
4.
XMLHttpRequest オブジェクトでPOSTすればいいです。
また、WSHなので、ローカルのリソースにアクセスできるので、ファイルに保存も可能です。
ご回答ありがとうございます。
はやり 3.のHTML部分のDOMのパースが苦労する部分だと思っていたので
この部分をjqueryにこだわっているわけではないのですが、なんか直感的
にアクセスできるようなライブラリがあればいいのですが・・・
引き続き情報お待ちしております。
15pt
Pure JavaScript HTML Parser
http://ejohn.org/blog/pure-javascript-html-parser/
こういうのでパースできそうです。
jqueryにこだわってないといいながらなんなんですが 上記感じだと使用する言語がjavascriptである必要がなくなってきてしまいますかね。
PHPや他の言語でもhtmlparserがあったりするのですが、どれもいまいちすっきりしなくて
あとのっかりですが
1.で呼び出すjsファイル内からprototypeやjqueryなど呼び出すことはできますでしょうか?
15pt
↑のid:mattnの回答のコードは http://d.hatena.ne.jp/hasegawayosuke/20090930/p1 にあります。
あと、jQuery や DOM の操作をせずに、HTML文字列をパースしたいというのであれば、jQueryの作者である John Resig 氏による Pure JavaScript HTML Parser もあります。
ありがとうございます。参考にします。
仮想htmlファイルを作成してそこにjQueryを流し込んでいるということですよね。
これだとjQuery以外にも流し込めそうなんでいろいろと幅が広がりそうです。
んー 目からうろこでした。
ありがとうございました。まさしくドンピシャです。