-2

ページからアカウントのステータスを返すために、DOM に対して正規表現を実行しています。

ページ上の文字列は次のとおりです。

<h3>Status</h3><p>Completed</p>

そして、これは私が現在使用している式です <h3>Status</h3>[\s\S]*?<p>([\s\S]*?)</p>

私の目標は、この文字列から「完了」のステータスのみを取得することですが、これを行う方法がわかりません。サブマッチングについて少し読んだことがあります。それを実装する方法がわからないだけです。

4

2 に答える 2

0

これはうまくいきます:/<h3>Status<\/h3>[\s\S]*<[^>]*>([^<]+)<.*/

ここで動作することを確認してください:http://jsfiddle.net/M7kJ7/

しかし、真剣に...そのためにはDOM関数を使用してください! なぜ正規表現なのですか?

編集: DOM 関数を使用して解決する方法の例: http://jsfiddle.net/DycGh/

EDIT2:OK、すべてのコメントを読んだ後、データベースに直接アクセスしない正当な理由があるという結論に達しました(できません!アクセスできません)そして、ネイティブを使用できませんDOM 機能 (各ページで直接 js を実行するのではなく、中央の 1 ページを他のページの検索に使用することになります) , ただし、ブラウザー側のJavaScript が正しいパスであるとはまだ思いません.

サーバー側のJavaScript (node.js)、またはperl などの他の言語を使用する方がよいでしょう。また、パーサーを使用して DOM を使用することも正しいです。

node.jsパスで選択する場合は、node-htmlparserを使用できます。ノード アプリから各 URL を開き、パーサーの関数を使用してデータを取得し、json 出力を作成します。ページはノードに対して ajax リクエストを行い、その json 結果を取得します。これを使用して出力を作成します。

perl を使用する場合は、HTML::DOMを使用できます。残りの手順は同様です。

perl や node.js である必要はありません。私が知っているオプションだけです。php、python、または ruby​​ を使用することもできます。(ただし、パーサーについてはグーグルで検索する必要があります)

ただし、サーバー側のスクリプトで行うのが最善です。

于 2013-08-01T17:26:36.190 に答える