我试图从这个网站提取定价数据:http://web.tmxmoney.com/pricehistory.php?qm_symbol=^TTUT。我一直收到错误"运行时错误' - 1072896658(c00ce56e)':系统不支持指定的编码"。
我已使用下面提供的代码从大多数网站提取HTML数据。这是唯一一个给我这个错误的人。我认为我可能会因为网站使用Javascript而收到错误,但我不确定。它肯定与"标签有关。网页布局。我可以使用标题为#34; Quote"的第一个标签中的代码。 (http://web.tmxmoney.com/quote.php?qm_symbol=^TTUT)但不是其他标签。
Option Explicit
Sub TEST_PULL()
Dim Look_String As String
Dim Web_HTML As String
Dim HTTP_OBJ As New MSXML2.XMLHTTP60
Dim xa As Long
Dim xb As Long
Select Case HTTP_OBJ.Status
Case 0: Web_HTML = HTTP_OBJ.responseText
Case 200: Web_HTML = HTTP_OBJ.responseText **'THE ERROR IS CAUSED HERE**
Case Else: GoTo ERROR_LABEL:
End Select
Look_String = "quote-tabs-content"
xa = IIf(IsNumeric(Look_String), Look_String, InStr(Web_HTML, Look_String))
xb = IIf(xa + 32767 <= Len(Web_HTML), 32767, Len(Web_HTML) - xa + 1)
Web_HTML = Mid(Web_HTML, xa, xb)
ERROR_LABEL:
End Sub
这将是一个巨大的帮助!感谢!!!
答案 0 :(得分:0)
不是你,而是他们。
导致错误的页面的响应标头指定了不存在的编码:ISO-8559-1。 ISO 8559与文本编码无关 - 它实际上与衣服的尺寸有关。这几乎肯定是ISO-8859-1。
成功读取的引用页面具有正确的ISO-8859-1编码。
要解决此问题,请在解码前使用包含原始字节的responseBody property。然后StrConv function可以尝试将这些字节转换为Unicode字符串(尽管这可能无法在所有情况下产生正确的结果),如下所示:
arr