2012-05-12 53 views
0

编辑:我已经找到了如何发布标题,并且知道如何获取值,但需要帮助才能做到。就这个。如何获取lua中html div的全部内容

  • 我必须检索网页。 (这部分是确定的)
  • 找出结果“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”形式的内容和这种形式中得到输入

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

和在第二只手的属性“值”(random_value)的值,我寻找一种方法以请求与POST的报头数据的URL。

+0

问题是非常不清楚;你想提取''元素?或者你想解析表单的匹配POST请求? – daurnimator

+0

我是triyng获取特定值 ThePH

回答

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.

+0

中属性“值”的值谢谢,那就是我一直在寻找的东西。 – ThePH

+0

http://stackoverflow.com/a/1732454/282536 – daurnimator

+0

@daurinimator:该帖子是真实的;你永远不想实际解析HTML/XML /等。使用正则表达式,所以如果你想做真正的网页抓取正则表达式是痛苦的秘诀。但在这个特定的例子中,使用一个特定的,可能是唯一的名称从一个标签中提取一个值,正则表达式不仅仅是完成任务。如果你需要做的不仅仅是这些,你可能甚至不想使用Lua,因为它缺少像机械化这样的库。 – Mud