C# c中的旁路内囊#
我正试图在just-eat.co.uk上负责任地搜集一些数据 使用webclient,我会得到一个带有javascript代码的页面,以检查我是否是来自incapsula的机器人C# c中的旁路内囊#,c#,web-scraping,C#,Web Scraping,我正试图在just-eat.co.uk上负责任地搜集一些数据 使用webclient,我会得到一个带有javascript代码的页面,以检查我是否是来自incapsula的机器人 var b="...DATAENCODED..."; for (var i=0;i<b.length;i+=2){z=z+parseInt(b.substring(i, i+2), 16)+",";}z = z.substring(0,z.length-1); eval(eval('String.fromChar
var b="...DATAENCODED...";
for (var i=0;i<b.length;i+=2){z=z+parseInt(b.substring(i, i+2), 16)+",";}z = z.substring(0,z.length-1); eval(eval('String.fromCharCode('+z+')');
有没有办法通过webclient绕过这个问题?因为它运行的是javascript,所以尝试可能没有意义。有一个工具可以在浏览器(如chrome)中发送请求,并通过保存浏览器呈现的信息来捕获结果,这会很有帮助。我使用更好的换行符和缩进进一步消除代码的模糊。查看代码,您可能只需要将请求发送到正确的图像URL,但要确定该URL可能很棘手。我使用更好的换行符和缩进进一步消除了代码的混淆。查看代码,您可能只需要将请求发送到正确的图像URL,但要确定该URL可能很棘手。
try{
var xhr;
var t=new Date().getTime();
var status="start";
var timing=new Array(3);
window.onunload=function(){
timing[2]="r:"+(new Date().getTime()-t);
document.createElement("img").src="/_Incapsula_Resource?XXXXXXX=52&t=63&d="+encodeURIComponent(status+" ("+timing.join()+")")
};
if(window.XMLHttpRequest) {
xhr=new XMLHttpRequest
}else{
xhr=new ActiveXObject("Microsoft.XMLHTTP")
}
xhr.onreadystatechange=function(){
switch(xhr.readyState){
case 0:
status=new Date().getTime()-t+": request not initialized ";
break;
case 1:
status=new Date().getTime()-t+": server connection established";
break;
case 2:
status=new Date().getTime()-t+": request received";
break;
case 3:
status=new Date().getTime()-t+": processing request";
break;
case 4:
status="complete";
timing[1]="c:"+(new Date().getTime()-t);
if(xhr.status==200){
parent.location.reload()
}
break
}
};
timing[0]="s:"+(new Date().getTime()-t);
xhr.open("GET","/_Incapsula_Resource?SWHANEDL=111...DATA...111,222...DATA...222,333...DATA...333,444...DATA...444",false);
xhr.send(null)
}
catch(c)
{
status+=new Date().getTime()-t+" incap_exc: "+c;
document.createElement("img").src="/_Incapsula_Resource?XXXXXXX=52&t=63&d="+encodeURIComponent(status+" ("+timing.join()+")")
};