0

編集:ヘッダーを投稿する方法を見つけました。値を取得する方法は知っていますが、それを行うには助けが必要です。はい、これ。

  • Webページを取得する必要があります。(この部分は大丈夫です)
  • 結果「formulaire_action_args」が表示される行を見つけて、変数に保存します。(それを行うためのループよりも良い方法を探しています)
  • そして、この行から属性「value」を取得します。

私は次のようにdivに含まれるhtmlページのコンテンツを取得しようとしています:

<form id="formulaire_login" method="post" action="/spip.php?page=login&amp;lang=fr" enctype="multipart/form-data">
    <div>
        <input name="page" value="login" type="hidden">
        <input name="lang" value="fr" type="hidden">
        <input name="formulaire_action" type="hidden" value="login">
        <input name="formulaire_action_args" type="hidden" value="random_value">
    </div>
    <fieldset>
        <ul>
            <li class="editer_login obligatoire">
               <input type="text" class="text" name="var_login" id="var_login" value="" size="40">
            </li>
            <li class="editer_password obligatoire">
                <input type="password" class="password" name="password" id="password" value="" size="40">
            </li>
        </ul>
    </fieldset>
</form>

id = "formulaire_login"のフォームのコンテンツを取得したいのですが、このフォーム内で入力の属性 "value"(random_value)の値を取得します

<input name="formulaire_action_args" type="hidden" value="random_value">

一方で、POSTヘッダーデータを含むURLをリクエストする方法を探しています。

4

1 に答える 1

0

ページの全文がにある場合は、pagetext何もループすることなく、Luaパターンマッチを介してその値を取得できます。

value = pagetext:match('name="formulaire_action_args"[^>]*value="([^"]+)"')

print(value) --> random_value

Luaパターン(基本的に正規表現)が機能する方法は、(1)ほとんどの文字が一致する、(2)一致する文字のクラスを指定する方法、(3)特定の文字/クラスの数を指定する方法です。合わせる。

name="formulaire_action_args" --> match this text exactly
[^>]*                         --> match 0 or more characters that are NOT a > character
value="                       --> match this text exactly
([^"]+)                       --> find 1 or more characters that are NOT a quote character and "capture" it

Luaパターンの詳細。

于 2012-05-12T17:35:41.023 に答える