0

私はこのサイトのコンテンツを取得しようとしています:http://www.gratka.pl/、しかし私はこれだけを受け取ります:

* gratka.plポート80にconnect()
しようとしています*195.8.99.42を試しています...*接続されています*
gratka.pl(195.8.99.42)ポート80に接続されてい
ますGET / HTTP / 1.1
ユーザーエージェント:Mozilla / 5.0(Windows; U; Windows NT 5.1; pl; rv:1.9.1.2)Gecko / 20090729 Firefox / 3.5.2
ホスト:gratka.pl承認
:* / *

<HTTP / 1.1 302が見つかりました
<Cache-Control:no-cache
<Content-length:0
<Location:..
*ホストgratka.plへの接続#0はそのままです
*このURLに別のリクエストを発行します:' http:// blad .gratka.pl / 403.html '
* blad.gratka.plポート80にconnect()
しようとしています*195.8.99.1を試しています...*接続されています*
blad.gratka.pl(195.8.99.1)ポート80に接続されています
GET / 403.html HTTP / 1.1
ユーザーエージェント:Mozilla / 5.0(Windows; U; Windows NT 5.1; pl; rv:1.9.1.2)Gecko / 20090729 Firefox / 3.5.2
ホスト:blad.gratka.pl承認
:* / *
...
<HTTP / 1.1 302が見つかりました
<Cache-Control:no-cache
<Content-length:0
<場所:http
://blad.gratka.pl/403.html * ホストblad.gratka.plへの接続#1はそのまま残され
ます*最大(20)リダイレクトが続きます *
接続#0を閉じます*接続#1を閉じます

コンテンツを取得するためにいつも使用しているスクリプトが機能していないとはどういう意味ですか。

    $ch = curl_init();
    $timeout = 15;
    $cookie_file_path = 'c.txt';
    $fp = fopen($cookie_file_path, "w");
    fclose($fp);
    $url = 'http://gratka.pl';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2');
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    $info = curl_exec($ch);
    curl_close($ch);

スクリプトを実行した後、Cookieファイル(c.txt)は空です。どうしたの?おそらくサイトには有効なCookieが必要ですか、それとも正しいHTTPヘッダーの問題ですか?どんな助けでも大歓迎です!

編集:ローカルホストで上記のスクリプトを実行すると機能しますが、専用サーバーで実行すると機能しません。何か推測?

4

2 に答える 2

0

あなたのコードは正しいです。この行をに追加するだけですcurl section

$curl = curl_init();
    curl_setopt($curl, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") );

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
于 2012-05-11T10:13:14.453 に答える
0

同じ問題が発生しました。別のサーバーでコードを試しましたが、機能しました。私の最初のサーバーは禁止されたと思います。:)

彼らがあなたを望まないとき、私はgratkaがhttp://blad.gratka.pl/403.htmlを指していると思います。

于 2012-06-08T13:34:36.613 に答える