如何在lua中获取html div的全部内容

时间:2012-05-12 10:25:48

标签: html sockets post lua

编辑:我已经找到了如何发布标题,我知道如何获取价值,但需要帮助才能完成。就是这样。

  • 我必须检索网页。 (这部分还可以)
  • 查找哪个行结果“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。

1 个答案:

答案 0 :(得分: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

More on Lua patterns.