7

スタックオーバーフローにはすでに同様の質問がありますが、それらの解決策はどれもうまくいきませんでした。cURL を使用して LoveIt.com のページを取得しようとしていますが、404 エラーが返されますが、URL はブラウザーで正常に機能します。

        $url = 'http://loveit.com/loves/P0D1jlFaIOzzZfZqj_bY3KV';

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        curl_setopt ($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_REFERER,'http://loveit.com/');

これが私が受け取るヘッダーです:

配列 ( [URL] => http://loveit.com/loves/P0D1jlFaIOzzZfZqj_bY3KV [コンテンツ タイプ] => テキスト/html; charset=utf-8 [http_code] => 404 [ヘッダー サイズ] => 667 [リクエスト サイズ] => 172 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.320466 [namelookup_time] => 0.000326 [connect_time] => 0.119046 [pretransfer_time] => 0.119089 [size_upload] => 0 [ size_download] => 499 [speed_download] => 1557 [speed_upload] => 0 [download_content_length] => 499 [upload_content_length] => 0 [starttransfer_time] => 0.320438 [redirect_time] => 0 [certinfo] => 配列 ( ) [ primary_ip] => --- [primary_port] => 80 [local_ip] => --- [local_port] => 53837 [redirect_url] => )

一部の Web サイトには、この種のスクリプトに対する保護機能があると読みました。提案されたいくつかのソリューションをテストしましたが、うまくいきませんでした(CURLOPT_USERAGENT、CURLOPT_REFERER ...)

ここで何が起こっているかについてのアイデアはありますか?

LoveIt アカウントをバックアップしたいので、これを作成します (エクスポート機能はなく、Web サイトの状態に関する LoveIt.com からの返信もありません)。

4

4 に答える 4

2

LiveHeaders を有効にして上記のページをすばやく確認したところ、たくさんの Cookie が設定されていることに気付きました。「通常の」URLではないため、リダイレクト中にこれらのCookieを渡す必要があると思われます。そうしないと、404で追い出されCURLOPT_COOKIEJARます。開始時にcURLインスタンスで使用します。参照: http://php.net/manual/pl/function.curl-setopt.php

于 2013-07-04T19:21:58.253 に答える
0

あなたの答えをありがとう、私はページにアクセスし、私が CURLOPT_COOKIEJAR ではなく、オプションCURLOPT_COOKIEFILEのために使用する cookies.txt ファイル (chrome extenson cookie.txt エクスポートを使用) に Cookie を保存しました。

$cookiefile = './cookie.txt';

curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);

そして今、それは動作します! フィードバックをお寄せいただきありがとうございます。本当に役に立ちました。

于 2013-07-04T20:01:04.213 に答える