有什么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。其实都是技术的博弈,安全无绝对。