2

私は JSOUP にはかなり慣れていませんが、Element.select をタグまたは ID 値で使用して解析する際に問題はありませんでした。私が抱えている問題は、ページ内のスクレイプ 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でこれを達成する方法を知っている人はいますか、それとも自分のスクレーパーを書くべきですか?

4

1 に答える 1

2

Jsoupでできることは、JavaScriptコードを含む要素を選択し、その値を文字列として取得し、この文字列を操作することだけです。あなたが例でそれをやっているのと同じように。

于 2012-04-22T19:18:26.477 に答える