【发布时间】:2017-05-13 18:49:44
【问题描述】:
当我运行它时在发布请求中编写一个宏,它会带来我不想要的意外响应。也许它无法从目标页面获取响应。无法识别我正在做的错误?我粘贴在我的代码下的原始网址。
执行搜索前要检查的框:
行业角色 = 专业服务提供商
其他标准 = APEX
Sub Xmlpost()
Dim http As New MSXML2.XMLHTTP60
Dim html As New HTMLDocument
Dim Items As Object, Item As Object, Elem As Object
Dim postdata As String
postdata = "DoMemberSearch=1&mas_last=&mas_comp=&mas_city=&mas_stat=&mas_cntr=&mas_type=Professional+Services+Providers&OtherCriteria=1"
With http
.Open "POST", "https://www.infocomm.org/cps/rde/xchg/infocomm/hs.xsl/memberdirectory.htm", False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
.send postdata
html.body.innerHTML = .responseText
End With
Set Items = html.getElementById("paginationDataPool").getElementsByTagName("a")
For Each Item In Items
x = x + 1
Cells(x, 1) = Item.innerText
Next Item
End Sub
原始页面:“https://www.infocomm.org/cps/rde/xchg/infocomm/hs.xsl/memberdirectory.htm”
搜索应该是这样的:
我得到的输出是这样的:
【问题讨论】:
-
您的代码对我有用,它检索成员目录。究竟是什么问题?你希望有什么不同?
-
感谢 Leviathan 先生的回答。我正在上传一张我最终得到的照片。
-
是的,我也一样。对我来说它看起来非常好。我重复我的问题:“你希望有什么不同?”
-
再次感谢 Leviathan 先生的回复。如果我对我在代码中所写的内容是正确的,那么您不认为我应该从该页面获取名称列表。顺便说一句,我已经编辑了我的帖子以适合搜索名称。
-
抱歉,Leviathan 先生,您说的确实是对的。我刚刚检查了使用 A 标签来抓取我得到的内容,是的,它确实从该目标页面获取名称。我想知道为什么编辑后的代码无法解析名称。
标签: vba web-scraping xmlhttprequest