2012-04-22 7 views
2

私はJSOUPをかなり新しくしており、タグやID値でElement.selectを使って解析することに問題はありませんでした。私が抱えている問題は、ページ内のスクラップ・ジャバスクリプト・コードをスクリーニングする方法です。ここで私は、文書のロード:JSOUP:HTMLドキュメントからJavascriptフィールドを解析していますか?

Document doc = Jsoup.connect(pageUrl) 
       .userAgent(Agent) 
       .timeout(5000) 
       .get(); 

私は抽出しようとしているjavascriptのフィールドの値を次のとおりです。

arrayGPSLocation["0"] = "-19473982376,6848295867"; 
arrayGPSLocation["1"] = "-19473982376,6848296245"; 

これらの配列の値は、標準コードタグ<>ではないのでJSOUPですこれを行う適切な方法は?私はJSOUPのAPIが好きです。他の唯一の方法は... すなわち文字列ルーチンを一緒にハッキングされた:大きなページを解析するとき

int start = pageBuffer.indexOf("arrayGPSLocation[\" + counter + \"]"); 
int end = pageBuffer.indexOf(";"); 
String result = pageBuffer.subString(start,end); 

この擬似コードの例は、深刻なパフォーマンスの問題を持っているでしょう。誰でもJSOUPでこれを達成する方法を知っていますか、私は自分のスクレーパーを書くべきですか?

答えて

2

Jsoupでできることはすべて、javascriptコードを含むselect要素です。その値をStringとして取得し、この文字列で処理します。あなたは例のようにそうです。

+0

これはあなたが正しいと思われます。私はMozillaのRhinoを使ってjavascriptの解析を行いましたが、javascriptの部分をつかんで自分自身を書く方が効率的だと思います。 – ThumbsDP