2016-10-10 7 views
0

サイトのホームページを解析しようとしていますが、別のページからのリダイレクトだけでアクセスできるため、リダイレクトページのhtmlしか持てません。「リダイレクト先」ページを取得

"リダイレクト先"ページのhtmlページを取得するにはどうすればよいですか?

以下は例です:私はブラウザで開いたときにb.htmlにリダイレクトされますが、私はb.htmlを解析したいのですが、私がb.htmlを開くとリダイレクト時にa.htmlからb.htmlに送信できるPOSTパラメータが直接必要になります。

編集:ちょうどノートのページがある「にリダイレクトさ」の相対パスを持っているので、私は次のようにします。

$pos=strpos($result,"window.location = \""); 
$res= substr_replace ($result,"https://thecompletepath/",$pos,0); 
echo $res; 

と、次のようにリダイレクトは、javascriptのコードを次のとおりです。

<script type="text/javascript" charset="utf-8"> 
    escapeIfModal(); 
    LoadingScreen.start(); 
    window.location = "/home"; 
</script> 
+0

どのようにaがやっているようにbにこれらのパラメータを掲示について:のfile_get_contentsを使用して

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "a.html"); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $a = curl_exec($ch); //response $a would contain the last redirected location: "b.html" 

? ;) –

+0

これをチェックしてください:http://stackoverflow.com/questions/3519939/make-curl-follow-redirects –

+0

@jakubwronaどのように私は送信されたすべてのPOSTパラメータを知ることができますか? –

答えて

1

ブラウザと同じように、cURLを使用してリダイレクトを行うことができます。

$context = stream_context_create(
    array(
     'http' => array(
      'follow_location' => true 
     ) 
    ) 
); 

$html = file_get_contents('http://www.example.com/a.html', false, $context); 
+0

リダイレクトはjavascriptコードを使用しています(私は質問を更新しました)。ただし、このメソッドは機能しませんでした。 –

+0

次に、 "リダイレクト先"ページに送られたパラメータを正確にチェックし、curlまたはfile_get_contentsを使用して正確にリクエストを真似することをお勧めします –

+0

JSコードを正しく適用せずにリダイレクトするのは不可能ですか?これらのパラメータをどのように確認できますか? –

関連する問題