2017-02-13 3 views
2

私はかなり新しくcURLであり、短時間しか使用していません。 私の問題は、cURLを使用してページのコンテンツ(file_get_content()が機能しない)を取得したいということです。残念ながら、問題のサイトにはボットの保護機能があります。つまり、最初にサイトにアクセスしたときにボットの有無をチェックします。あなたがボットでないなら、それは絶対パス(私が推測する)であなたを実サイトにリダイレクトします。 このサイトをcURLで読み込むと、サーバーアドレスにパスが追加されます。curlはリダイレクトされたURLをブラウザのアドレス行に入れます。

例: 私のサーバーには、アドレスがhttp://examplepage.com/です。cURLは、URLにリダイレクトされたパスを追加します。 http://examplepage.com/absolute/path?with=parameters

コンテンツを取得しようとする元のページでは、そのようなパスがあるので動作しますが、私はそうしません(私はtheireサイトのいくつかのHTMLコンテンツを必要としています) 。ここで

は私のコードは、これまでのところです:

<?php 

    /* getting site */ 
    $website = "https://originalsite.com/?some=parameters"; 
    $redirectURL; 

    function curl_download($url) { 
    //initialize curl handler 
    $c = curl_init(); 

    // Include header in result? (0 = yes, 1 = no) 
    curl_setopt($c, CURLOPT_HEADER, 1); 

    //set url to download 
    curl_setopt($c, CURLOPT_URL, $url); 

    // follow redirection 
    curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); 

    //set referer 
    curl_setopt($c, CURLOPT_REFERER, "https://originalsite.com/"); 

    // User agent 
    curl_setopt($c, CURLOPT_USERAGENT, "MozillaXYZ/1.0"); 

    // Should cURL return or print out the data? (true = return, false = print) 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 

    // Timeout in seconds 
    curl_setopt($c, CURLOPT_TIMEOUT, 10); 

    // Download the given URL, and return output 
    $output = curl_exec($c); 

    // Close the cURL resource, and free system resources 
    curl_close($c); 

    return $output; 
    } 

    $content = curl_download($website); 

    echo $content; 

?> 

ので、少なくともそれはそれは私がボットやないですかどうかをチェックするサイトを入力します、その後、それはサイトに私をリダイレクトする(またはそれは、努める)。

私はインターネットとStackOverflowを検索しましたが、私の問題に対する答えを見つけることができませんでした。

+0

'$ output'を' print_r() 'するとどうなりますか? – KDOT

+0

何も違いはありません。 – CeyKie

+0

まあ、カプセル化されたエラーか、 '$ output'の何らかの応答を持つことになります。 '$ output'の値が何であるかを追加できますか?全体のアイデアは、要求をデバッグすることです。 – KDOT

答えて

0

何が起こっているかは、ページをレンダリングした後にリダイレクトを発行するJavaScriptコードがあることです。クイックテストを行うには、ブラウザでJavaScriptを無効にしてみてください。

+0

それはそれだと思います。 JSを無効にした後は、私がボットかどうかチェックしているだけのショーです。それはもはやリダイレクトされません。 – CeyKie

+0

とにかくこれを通過する方法はありますか? – CeyKie

関連する問題