2012-05-12 54 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