javascript阻止了file_get_contents

时间:2017-03-15 20:06:41

标签: javascript php

我正在尝试使用file_get_contents从网站上删除数据,但我没有收到网页来源代码:

<body onload="challenge();">
<script>eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1 6(){2.3=\'4=5; 0-7=8; 9=/\';a.b.c()}',13,13,'tax|function|document|cookie|ddosdefend|1d4607e3ac67b865e6c7263260c34e888cae7c56|challenge|age|0|path|window|location|reload'.split('|'),0,{}))

引擎是wordpress。有没有机会获得真正的消息来源?

1 个答案:

答案 0 :(得分:-1)

file_get_contents似乎工作正常。但是,似乎您没有提供所需的内容,而是需要在重定向到内容之前评估一些JavaScript代码。

这可能是因为你想要抓取的网站使用DDOS保护(例如像CanFlare这样的东西)来检测你的简单抓取尝试。

通常,DDOS保护服务是原始Web服务器和您的scraper之间的代理。它检查您的请求行为,用户代理等,并根据它为您提供原始网络服务器的内容或向您提出挑战(例如验证码,或者只是要求您评估javascript等)。

如果您可以获取原始网络服务器的IP地址,您可以直接访问它。网络服务器名称的DNS解析将引导您进入代理,因此您必须查看其他地方。或者,使用Web抓取库来模拟PHP中的真实浏览器行为。