4

私はPHPが初めてです。私は StackOverflow を検索し、同様の質問に対する回答の指示に従いました。しかし、指示が​​うまくいきません。

これが問題です:

解析のために PHP cURL を使用して HTML を取得しようとしています。 http://actas.rfef.es/actas/NPortada これは公にアクセス可能なページです。ブラウザのアドレス バーからページをリクエストすると、正常に動作します。ただし、リクエストが cURL 経由の場合、http://actas.rfef.es/actas/NLogin (0 バイトの空白ページ) にリダイレクトされます。useragent が問題かもしれないと思い、curl のユーザー エージェント値followlocationを false に設定しましたが、それでもリダイレクトされます。

これが私のコードです:

$home="http://actas.rfef.es/actas/NPortada";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$home);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER, TRUE);
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0)Gecko/20100101 Firefox/18.0");
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookies.txt");
echo curl_exec($ch);
curl_close($ch);

followLocationに設定されているにもかかわらず、リダイレクトされるのはなぜfalseですか? そのターゲット ページにはメタ更新タグがありません。

リダイレクトを回避し、対象のページの html を取得するにはどうすればよいですか? 私は何を間違っていますか?

私は過去3日間、この問題に苦労してきました。誰かこれで私を助けてください。前もって感謝します。

4

1 に答える 1

0

ブラウザOK!ただし、curl (php 上) は機能しません! 次に、以下を参照してください

常に、コマンド ラインで curl オプションを確認してください。それはとても簡単だからです!

  1. curl < url to visit >

  2. ブラウザの開発ツールでリクエストヘッダーを見てください!

と...

  1. ブラウザのリクエストヘッダーでcurl

    curl < url to visit >

    -A "User-Agent"また

    -e "Referer"また

    --cookie "Cookie Key:value"

    等...

あなたの場合、

http://actas.rfef.es/actas/NPortadaブラウザではうまく動作するが、curl では動作しない

を使用してリダイレクトを確認できますcurl -v http://actas.rfef.es/actas/NPortada

ブラウザと開発ツールの使用を参照してください....その後、リダイレクトは見つかりませんでした!

ここに画像の説明を入力

ブラウザのリクエストヘッダーでcurlを再試行してください!User-Agent が機能していません。Referer も機能していません。

次に、Cookieオプションを試してください!

curl -v --cookie "JSESSIONID=B2F73A51E07D624FB205A114B2CC5D19" "http://actas.rfef.es/actas/NPortada"

解決策を見つけました。http://actas.rfef.es/actas/NPortadaは Cookie でリクエストする必要があります。

于 2014-09-23T01:44:53.267 に答える