2017-03-09 55 views
1

我想从一个网站提取数据,但是当我加载的PHP文件,所以而是我自动重定向到网站..!为什么php curl url将自己从php文件自动重定向到url?

这里看看视频为: http://recordit.co/KOwXS5KTKR

PHP:

$url = "http://extratorrent.cc/view/popular/TV.html?page=1&srt=seeds&pp=50&order=desc"; 

$ch = curl_init(); 

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);  

    $data = curl_exec($ch); 
    curl_close($ch); 

print_r($data); 

JUST基于假设:

虽然考虑看看该网站的源页面代码,以便我将JavaScript看作:

<script type="text/javascript">window.functions = new Array();</script> 
<script src="https://extra.to/scripts/script.js?2" type="text/javascript"></script> 

我认为这可能会导致重定向,所以如果这是正确的,那么我将如何能够防止它?

我做了一些研究,结果我发现window.location无法完全禁用,因此该站点不会重定向到它自己的位置......我想知道如果我可以忽略加载以下代码在CURL的HTML页面通过PHP加载?

回答

0

肯定有一个Javascript检查您的window.location与extratorrent域名和IP。虽然我找不到自己重定向的线,但它一定是在那里。

r = 0, 
    d = ['.cc', '.com', '.ws','live.com','.is'], 
    p = ['195.144.21.16','195.144.21.19','195.144.21.22','88.190.233.44'], 
    w = window.location, 
[...] 
for (i in d) { 
    if (w.hostname == e + d[i]) { 
     r = 1; 
    } 
} 

for (i in p) { 
    if (w.hostname == p[i]) { 
     r = 1; 
    } 
} 

如果你想提取从本网站的数据,你应该考虑,如果你需要输出的数据通过print_r。如果您处理的内容,它不会影响你的页面,直到你输出。你可以试试:

  1. 在浏览器的开发(可能会或可能无法正常工作,这取决于对JS的网站依赖)禁用的JavaScript。

  2. 即使通过简单的str_replace也可以从卷曲响应中剥离脚本。

  3. 处理/解析内容而不输出到浏览器。