Web scrape innertext vba

时间:2017-04-09 08:43:26

标签: excel vba web screen-scraping

我已经尝试了很长时间,但我遇到了一个问题。

我试图用getattribute.value来抓取这两个值,并试图用getelementbyID / name / ClassName来做,但没有任何帮助

我需要帮助网络从以下html代码中删除名为'0606'的innertext:

<td width="100%" nowrap="" colspan="3">
<input name="pg41_PolicyHolder_FogP_PolicyHolderId_FogP_IdentityQualifier" 
type="HIDDEN" value="CPR">CPR-nr:
<input name="pg41_PolicyHolder_FogP_PolicyHolderId_FogP_IdentityValue" 
type="HIDDEN" value="0606">0606</td>

我现在的代码是:

Dim CPR As String CPR = IE.Document.getElementById("pg41_PolicyHolder_FogP_PolicyHolderId_FogP_IdentityValue").innerText Range("A2").Value = CPR

我也尝试了这个,但这会返回我想要的输入之上的第一个输入方式,无论我改变哪个值(1),它都是91错误:

CPR= Trim(Doc.getElementsByTagName("input")(1).getAttribute("value"))
Range("A2").Value = CPR

有人能帮助我吗? 对代码的任何建议都会对我有所帮助

2 个答案:

答案 0 :(得分:0)

尝试通过它的名称属性来获取元素,如下所示......

IE.document.getElementsByName("pg41_PolicyHolder_FogP_PolicyHolderId_FogP_IdentityValue")

答案 1 :(得分:0)

尝试选择元素,然后解析OuterHTML以获取值。

Dim s As String
s = IE.document.querySelector("input[name=pg41_PolicyHolder_FogP_PolicyHolderId_FogP_IdentityValue]").outerHTML 
Debug.Print Split(Split(s, "value=" & Chr$(34))(1), Chr$(34))(0)