【发布时间】:2018-10-23 13:35:53
【问题描述】:
我正在尝试在 VBA 环境 (Excel) 上使用 MSXML2.XMLHTTP 对象从网站上抓取数据,但我不知道如何解决这个问题!网站如下:
http://www.detran.ms.gov.br/consulta-de-debitos/
你们可以使用以下测试数据来填写表格:
- 地点:oon5868
- 更新:1021783231
我想检索像“chassi”这样的数据,上面的数据将是“9BD374121F5068077”。
我在解析 html 文档时没有问题,困难实际上是获取信息作为响应!代码如下:
Sub SearchVehicle()
Dim strPlaca As String
Dim strRenavam As String
strPlaca = "oon5868"
strRenavam = "01021783231"
Dim oXmlPage As MSXML2.XMLHTTP60
Dim strUrl As String
Dim strPostData As String
Set oXmlPage = New MSXML2.XMLHTTP60
strUrl = "http://www2.detran.ms.gov.br/detranet/nsite/veiculo/veiculos/retornooooveiculos.asp"
strPostData = "placa=" & strPlaca & "&renavam=" & strRenavam
oXmlPage.Open "POST", strUrl, False
oXmlPage.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXmlPage.send strPostData
Debug.Print oXmlPage.responseText
End Sub
POST 方法中使用的 strURL“.../retornooooveiculos.asp”是谷歌开发者工具之一,fiddler 向我展示了该网站发布有效负载的正确地址。
当手动访问时,网站会检索到正确的信息,但运行我的代码时,我总是在 .responseText 上得到以下响应:
<html>Acesse: <b><a href='http://www.detran.ms.gov.br target='_parent'>www.detran.ms.gov.br</a></b></html>
请帮忙,我想解开这个谜题快疯了!为什么我会被这样重定向?
我需要“CHASSI”信息,但找不到正确的 http 请求来执行此操作!
【问题讨论】:
-
我的响应信息与您的代码在手动访问网站时收到的响应信息相同。它基本上告诉我访问“www.detran.ms.gov.br”,但是当我单击该链接时,需要一些时间通知我“无法访问该站点 www.detran.ms.gov.br响应时间过长。”
标签: vba web-scraping xmlhttprequest msxml