MSXML2.ServerXMLHTTP 使用经典 ASP returns 损坏的图像
MSXML2.ServerXMLHTTP using Classic ASP returns broken images
我好几年没用过 MSXML2.ServerXMLHTTP,现在我需要用了。当我使用 MSXML2.ServerXMLHTTP 抓取页面时,页面 returns 图像损坏。我记得过去这样做过,我会使用一行代码,图像会完美解析。这有点像设置基础 url。有谁知道代码是什么?这是我正在使用的代码:
url = "notimportant.com"
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", URL, False
objXML.Send()
xmlResponse = objXML.responseText
Set objXML = Nothing
您可能想在 <head>
中放置一个 <base>
标记,这样一行代码必须如下所示:
xmlResponse = Replace(objXML.responseText, "<head>", "<head><base href=""http://notimportant.com/"" />", 1, 1, vbTextCompare)
或者像<head class="head etc">
这样head标签比较复杂和不可预测的情况下,作为更可靠的方法,您可以使用正则表达式来替换:
Dim Re
Set Re = New RegExp
Re.IgnoreCase = True
Re.Pattern = "<head[^>]*>"
xmlResponse = Re.Replace(objXML.responseText, "$&<base href=""http://notimportant.com/"" />")
我好几年没用过 MSXML2.ServerXMLHTTP,现在我需要用了。当我使用 MSXML2.ServerXMLHTTP 抓取页面时,页面 returns 图像损坏。我记得过去这样做过,我会使用一行代码,图像会完美解析。这有点像设置基础 url。有谁知道代码是什么?这是我正在使用的代码:
url = "notimportant.com"
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", URL, False
objXML.Send()
xmlResponse = objXML.responseText
Set objXML = Nothing
您可能想在 <head>
中放置一个 <base>
标记,这样一行代码必须如下所示:
xmlResponse = Replace(objXML.responseText, "<head>", "<head><base href=""http://notimportant.com/"" />", 1, 1, vbTextCompare)
或者像<head class="head etc">
这样head标签比较复杂和不可预测的情况下,作为更可靠的方法,您可以使用正则表达式来替换:
Dim Re
Set Re = New RegExp
Re.IgnoreCase = True
Re.Pattern = "<head[^>]*>"
xmlResponse = Re.Replace(objXML.responseText, "$&<base href=""http://notimportant.com/"" />")