有什么http访问一些网站,遇到有些网站会有百度云防护或者安全狗,这样返回的就是空值,其实解决的方法也很简单。
上代码片断吧
//安全狗跳转 getanquan = function(htm){ if(string.indexOf(htm,"self.location")){ thread.command.print1("遇到安全狗,跳转") pattern=//self.location="(.+?)" var geturl = string.match(htm,pattern); http.beginRequest(url ++ geturl); var htm,err,errNo = http.send() ; htm = http.readAll(); //读取所有返回 htm =htm? string.fromto(htm,0,65001); //gbk的转码 var header = http.readHeader() http.endRequest(); return htm; } return htm; } //遇到百度云防护跳转 getbaidu = function(htm){ if(string.indexOf(htm,"window.onload")){ thread.command.print1("遇到百度云防护,跳转-》"); pattern=/**setTimeout\("(.*?)".+(function .+})**/ var fun,js = string.match(htm,pattern); pattern=/**eval\("qo=e.*;"\)**/ js = string.replace(js,pattern,"return po "); vm.AddCode(js) geturl = vm.Eval(fun) ; var pattern=/**window.location="(.+?)"**/ var geturl = string.match(geturl,pattern); http.beginRequest(url ++ geturl); var htm,err,errNo = http.send() ; htm = http.readAll(); //读取所有返回 htm =htm? string.fromto(htm,0,65001); //gbk的转码 var header = http.readHeader() http.endRequest(); htm =htm? string.fromto(htm,0,65001); //gbk的转码 return htm; } return htm; }
转码不转码自己判断,有的要写cookie的,再次访问要带cookie。其实都是技术的博弈,安全无绝对。