关于用XMLHTTP加载缓冲文字的问题直接上代码Public Function GetBody2(ByVal URL$, Optional ByVal Coding
关于用XMLHTTP加载缓冲文字的问题
直接上代码
Public Function GetBody2(ByVal URL$, Optional ByVal Coding$ = "GB2312")
Dim ObjXML
On Error Resume Next
Set ObjXML = CreateObject("Microsoft.XMLHTTP")
With ObjXML
.Open "Get", URL, False, "", ""
.setRequestHeader "If-Modified-Since", "0"
.SEnd
GetBody2 = .ResponseBody
End With
GetBody2 = BytesToBstr(GetBody2, Coding)
Set ObjXML = Nothing
End Function
Public Function BytesToBstr(strBody, CodeBase)
Dim ObjStream
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.Type = 1
.Mode = 3
.Open
.Write strBody
.Position = 0
.Type = 2
.Charset = CodeBase
BytesToBstr = .ReadText
.Close
End With
Set ObjStream = Nothing
End Function
用这个获取网页源码的时候,不能够加载LazyLoad里面的缓冲内容
例如http://product.dangdang.com/product.aspx?product_id=22544490
就只能加在上面的,商品详情就加载不了
问下,怎样才能调整可视区域,让Lazy Load里面的内容被加载
[最优解释]
字符编码了。
抓包就知道,你想要的内容在:
http://product.dangdang.com/callback.php?type=detail&product_id=22544490&page_type=book&describe_map=&category_id=17537&t=0.4867733117334352
这种链接中,内容如下:\u660e\u53f2\u6743\u5a01\u767e……
解码文字是:明史权威百……
解码想必没问题了吧?
[其他解释]
解码还是不会,能提供个VB function 代码么
[其他解释]
Function VBSunescape(ByVal Source As String) As String
Dim objScrCtl As Object
Set objScrCtl = CreateObject("MSScriptControl.ScriptControl")
objScrCtl.Language = "JavaScript"
VBSunescape = objScrCtl.Eval("unescape('" & Source & "')")
Set objScrCtl = Nothing
End Function
[其他解释]
这个已经解决了,我把\u替换成&H,然后用chrW函数转换的
问下,这个包怎么来的,不会抓包~ - -!!!
