我需要您的帮助,才能从HTTP响应中收到的表单中获取元素值。 场景:例如,在购买股票时,您单击特定股票的“购买”按钮。同时会打开一个表单,您将在其中填写所有必要的详细信息和下订单。该表单包含一些隐藏值,例如:“ stk_token”,“ user_access”,“ user_id” ..等 如果我解码HTTP响应,则可以看到这些值(HTML代码的一部分已接收)。如果您需要更多信息,请告诉我。
</table>
</div>
</td>
</tr>
</table>
<INPUT TYPE="hidden" name="stk_token" id="stk_token" value='1820'>
<INPUT TYPE="hidden" name="stk_me" id="stk_me" value='NN'>
<INPUT TYPE="hidden" name="stk_it" id="stk_it" value='EQ'>
<INPUT TYPE="hidden" name="amo" id="amo" value=0 >
<INPUT TYPE="hidden" name="so" id="so" value=0 >
<INPUT TYPE="hidden" name="order_buy_sell" id="order_buy_sell" >
<INPUT TYPE="hidden" name="timestamp" id="timestamp" value="1549432660">
<INPUT TYPE="hidden" name="client_id" id="client_id" value="M0KGI">
<INPUT TYPE="hidden" name="oc" id="oc" value="">
<INPUT TYPE="hidden" name="cover" id="cover" value="">
<INPUT TYPE="hidden" name="mit" id="mit" value="">
<INPUT TYPE="hidden" name="multipler" id="multipler" value="1">
<INPUT TYPE="hidden" name="user_access" id="user_access" value="1021112110001000500011101001100000200110011001000000000000000000">
<INPUT TYPE="HIDDEN" NAME="key" id="key" value="F7E57EE9-A3BD-4804-9439-387FB8B0528F">
<INPUT TYPE="hidden" name="stk_ltp" id="stk_ltp" value="211.35">
<INPUT TYPE="HIDDEN" NAME="orderdata" id="orderdata" value="">
<INPUT TYPE="hidden" name="user_id" id="user_id" value="M84_153" >
<INPUT TYPE="hidden" name="client_group" id="client_group" value="M0KGI" >
<INPUT TYPE="hidden" name="branch_id" id="branch_id" value="FP" >
<INPUT TYPE="hidden" name="lsrc" id ="lsrc" value="0" >
<INPUT TYPE="hidden" name="wlsrc" id ="wlsrc" value="WEB" >
<INPUT TYPE="hidden" name="brckt_flag" id="brckt_flag" value="normal" >
<INPUT TYPE="hidden" name="delivery_lot_comm" id ="delivery_lot_comm" value="0.00" >
<INPUT TYPE="hidden" name="price_den_comm" id ="price_den_comm" value="1.00" >
</FORM>
<script type="text/javascript" charset="utf-8" src="/resources/trading/js/profile/default.js"></script> <!--for main js-->
<div id="disp_footer" ></div>
<script>
我需要在我的工作表上获取所有Id值(“ order_buy_sell”,“ client_id”等)。但是,如果我尝试打印单个值,则无法正常工作。请帮助我。我已经花了很多时间解决问题,但没有成功。这将对我有很大帮助
xmlhttp.setRequestHeader "Accept-Language", "en-US,en;q=0.9"
xmlhttp.setRequestHeader "Cookie", cook
xmlhttp.send bodyR
html.body.innerHTML = xmlhttp.responseText
'---to get cookies-----
getcookres = xmlhttp.GetResponseHeader("Set-Cookie")
Worksheets("Action").Cells(3, 24).Value = getcookres
Worksheets("Action").Range("X3:Z3").Replace What:="path=/; HttpOnly", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'---cookies Close-----
'--- to get elements---
Dim ele As Object
Set ele = html.querySelectorAll("#user_access")
Debug.Print ele.Item.innerText
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End Sub
答案 0 :(得分:0)
您想要querySelector
方法,因为该方法返回单个元素,这通常是使用id选择器的情况。 querySelectorAll
返回一个必须索引到的nodeList。
Set ele = html.querySelector("#user_access")
然后,看起来您实际上可能需要value属性,可以尝试使用
Debug.Print ele.value
另一种检索方法是使用
ele.getAttribute("value")
如果要在type
= hidden
的所有位置,并且element是input
元素,则可以将attribute = value选择器与type结合使用选择器:
Dim nodeList As Object, i As Long
Set nodeList = html.querySelectorAll("input[type=hidden]")
For i = 0 To nodeList.Length - 1
Debug.Print nodeList.item(i).NAME, nodeList.item(i).Value
Next