0

当我将 FireFox 用于“ https://twitter.com/search?q=vbs ”时,一切正常,我看到了推文(没有登录)。但是,当我尝试对 XMLHTTP 使用最简单的 VBS 脚本编写方式时,似乎我被宣布为 Twitter 的移动用户并且我没有得到搜索结果。那么,如何更改下面的 VBS 代码以使其正常工作?原则上,似乎我应该能够设置一些 objXMLHTTP 属性来欺骗任何浏览器,但话又说回来,微软可能不会这么轻易地给我这种自由。任何评论都会很棒!

strFileURL = "https://twitter.com/search?q=vbs"
strHDLocation = "C:\Users\me\webpages\saved_tweets.html"
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
if objXMLHTTP.Status = 200 then
  Set objADOStream = CreateObject("ADODB.Stream")
  objADOStream.Open
  objADOStream.Type = 1
  objADOStream.Write objXMLHTTP.ResponseBody
  objADOStream.Position = 0
  Set objFSO = Createobject("Scripting.FileSystemObject")
  if objFSO.Fileexists(strHDLocation) then objFSO.DeleteFile strHDLocation
  Set objFSO = Nothing
  objADOStream.SaveToFile strHDLocation
  objADOStream.Close
  Set objADOStream = Nothing
end if
Set objXMLHTTP = Nothing
4

2 回答 2

2

也许您可以在您的 HTTP 请求中伪造一个用户代理(浏览器),以便 Twitter 将您的浏览器视为具有以下内容的桌面:

Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0"
objXMLHTTP.send()
于 2013-05-19T01:27:44.557 回答
1

可以选择使用移动搜索页面吗?

strFileURL = "https://mobile.twitter.com/search?q=vbs"
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send
于 2013-05-19T00:12:28.630 回答