2017-03-09 4 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

間違いなくあなたのwindow.locationをextratorrentドメイン名とIPに対してチェックするJavascriptがあります。私はリダイレクト自体を行う行を見つけることはできませんが、そこにあるはずです。

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. コンテンツをブラウザに出力せずに処理/解析します。