xmlhttp 获取网页源文件,该怎么处理
xmlhttp 获取网页源文件
菜鸟求助:
我用浏览器登录了百度后(登陆时取消选定“记住我的登录状态”,因为大部分网站的网页是不支持这个功能的,帖子里用百度只是学习),希望能够用利用网页的cookie和其他信息使用XmlHttp获取到相关页的源文件
我在登陆后刷新首页,用HttpWatch软件截取了发送和接收的数据,发送流为:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.baidu.com
Connection: Keep-Alive
Cookie: BAIDUID=9AD9F1A92C721008D65EAC9BA8D4EB58:FG=1; BDUSS=h3T3c2SEtUU3ZtT0pMNE1MeEg0MnBLVDBKdXU5aE4tNGs3bTdVQzN4aEZ2ZzlQQUFBQUFBJCQAAAAAAAAAAAouSiCLj18CeHl6bm84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgqiV6AAAAAOCqJXoAAAAAuWZCAAAAAAAxMC42NS4yMkUx6E5FMehOWW; USERID=f42ca566d32c9d2dfd71
于是我用以下代码试图实现目的:
然而这样并不能获取到已登陆状态的源文件
求高手指点:
1:怎样才能实现“利用网页的cookie和其他信息使用XmlHttp获取到相关页的源文件"
2: 我使用InternetGetCookie函数获取的本地cookie不全,网页cookie如上,但该函数获取的是:BAIDUID=9AD9F1A92C721008D65EAC9BA8D4EB58:FG=1; USERID=f42ca566d32c9d2dfd71,少了“BDUSS=h3.....",怎么才能得到完整cookie?
朋友们帮帮忙,万分感谢!
------解决方案--------------------
建议使用winhttp,XmlHttp好多东西不支持的。
菜鸟求助:
我用浏览器登录了百度后(登陆时取消选定“记住我的登录状态”,因为大部分网站的网页是不支持这个功能的,帖子里用百度只是学习),希望能够用利用网页的cookie和其他信息使用XmlHttp获取到相关页的源文件
我在登陆后刷新首页,用HttpWatch软件截取了发送和接收的数据,发送流为:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.baidu.com
Connection: Keep-Alive
Cookie: BAIDUID=9AD9F1A92C721008D65EAC9BA8D4EB58:FG=1; BDUSS=h3T3c2SEtUU3ZtT0pMNE1MeEg0MnBLVDBKdXU5aE4tNGs3bTdVQzN4aEZ2ZzlQQUFBQUFBJCQAAAAAAAAAAAouSiCLj18CeHl6bm84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgqiV6AAAAAOCqJXoAAAAAuWZCAAAAAAAxMC42NS4yMkUx6E5FMehOWW; USERID=f42ca566d32c9d2dfd71
于是我用以下代码试图实现目的:
- VB code
Private Sub GetReturn_Baidu() 'On Error Resume Next Text1.Text = "" Dim XmlHttp As Object Set XmlHttp = CreateObject("Microsoft.XMLHttp") Dim url As String url = "http://www.baidu.com/" XmlHttp.Open "get", url, False XmlHttp.setRequestHeader "(Request-Line)", "GET / HTTP/1.1" XmlHttp.setRequestHeader "Accept", "*/*" XmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate" XmlHttp.setRequestHeader "Accept-Language", "zh-cn" XmlHttp.setRequestHeader "Connection", "Keep-Alive" XmlHttp.setRequestHeader "Host", "www.baidu.com" XmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E)" XmlHttp.setRequestHeader "Cookie", "BAIDUID=9AD9F1A92C721008D65EAC9BA8D4EB58:FG=1; BDUSS=h3T3c2SEtUU3ZtT0pMNE1MeEg0MnBLVDBKdXU5aE4tNGs3bTdVQzN4aEZ2ZzlQQUFBQUFBJCQAAAAAAAAAAAouSiCLj18CeHl6bm84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgqiV6AAAAAOCqJXoAAAAAuWZCAAAAAAAxMC42NS4yMkUx6E5FMehOWW; USERID=f42ca566d32c9d2dfd71" XmlHttp.send Text1.Text = XmlHttp.responseText Set XmlHttp = Nothing End Sub
然而这样并不能获取到已登陆状态的源文件
求高手指点:
1:怎样才能实现“利用网页的cookie和其他信息使用XmlHttp获取到相关页的源文件"
2: 我使用InternetGetCookie函数获取的本地cookie不全,网页cookie如上,但该函数获取的是:BAIDUID=9AD9F1A92C721008D65EAC9BA8D4EB58:FG=1; USERID=f42ca566d32c9d2dfd71,少了“BDUSS=h3.....",怎么才能得到完整cookie?
朋友们帮帮忙,万分感谢!
------解决方案--------------------
建议使用winhttp,XmlHttp好多东西不支持的。