私たちはクライアントのページから重要な情報を引き出すためにPHPで構築されたクローラを持っています。問題は、ほとんどのお客様が302を使用して最終的な目的地に行くカスタム短縮リンクを投稿することです。私たちのクローラは、この最新クライアントまで、これらのコードを実行するのに成功しています(下記のコードを参照)。ブラウザでそこに行く場合は、標準の302の行動を見ることができますPHP cURLリクエストがリダイレクトされない
http://www.dose.com/lists/26235/s
ていますが、クローラーとそれを訪問した場合、それは単に200を返し、リダイレクトされません。ここではサンプルのリンクです。これにより、私は要求をできるだけ自然なものに見せなければならないと信じていましたが、まだ成功していませんでした。最後に、コードのcURLセクションを次に示します。
function sendRequest($url)
{
global $ch;
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5)".
" Gecko/20041107 Firefox/1.0";
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.8',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_ENCODING, '');
$contents = curl_exec($ch);
//curl_close($ch);
return $contents;
}
編集しても問題は解決しません。
http://www.dose.com/lists/26235/s - リターンあなたが正しい –
'301は永久に移動'。その訂正をありがとう。まだcURLがそれに苦労している理由はまだ分かりません。 –