0

libcurl を使用して Web ページのソース コードを取得します。「www.macys.com」のソース コードを取得するまでは問題ありません。

私のプログラムは CURLOPT_FOLLOWLOCATION オプションなしでは何も取得しませんが、このオプションを使用すると、リダイレクト先は常に「/」になり、CURLOPT_MAXREDIRS オプションを設定しない限り、curl_easy_perform 関数は返されません。

私の質問は、この Web ページのソース コードを libcurl で取得するにはどうすればよいですか? どうもありがとう。

私のlibcurlバージョン:7.23.1、OS:CentOS 6.0(最終)x64

4

2 に答える 2

0

サーバーがクライアントをリダイレクトし続け、クライアントにリダイレクトに従うように依頼した場合、クライアントは何をすることを期待していますか?

唯一のオプションは、CURLOPT_MAXREDIRS が使用される、一定量のステップの後に停止することです。

このようなことが起こる理由は主に、curl の使用では提供されないクライアント固有の詳細 (ユーザー エージェント、Cookie、リファラーなど) をサイトがチェックしているためです。多くの場合、curl リクエストをブラウザのリクエストに似せて作成すると、この影響を回避できます。

于 2012-05-01T17:58:28.187 に答える
0

CURLOPT_FOLLOWLOCATION を無効にし、手動でリダイレクトを追跡してループが発生しないようにするか、CURLOPT_MAXREDIRS を異常な数 (10) に設定して、自己リダイレクト経由でのみ到達できるようにします。

于 2012-05-01T19:36:09.647 に答える