0

编辑:我已经找到了如何发布标题,并且我知道如何获得价值,但需要帮助才能做到这一点。就这个。

  • 我必须检索网页。(这部分还可以)
  • 查找结果“formulaire_action_args”出现在哪一行并将其保存在变量中。(寻找比循环更好的方法)
  • 并从此行检索属性“值”。

我正在尝试获取包含在 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 回答