2017-03-09 59 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. 處理/解析內容而不輸出到瀏覽器。