0

JavaScriptでページをリダイレクトした後、ページ全体のコンテンツを取得するにはどうすればよいですか?

executewebpage.phpの場合

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setOpt($ch, CURLOPT_POST, TRUE);
$url = 'http://www.doredirect.com';
$postfields = array('doredirect'=>'true','trigger'=>'1');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);

echo($data);  //In this step, it redirect to page: http://www.finalpage.com

curl_close($ch);

http://www.finalpage.comのコンテンツを取得するにはどうすればよいですか?

注:エコーしないと、何も返されず、どのページにもリダイレクトされません

どうもありがとう!

4

3 に答える 3

5

これを使用して、curl 応答の HTML を表示してみてください。

echo htmlspecialchars($data);

どこかに JavaScript またはメタ リダイレクトが存在する可能性があります。これを探します:

window.location...

また

document.location...

また

<meta http-equiv="refresh" content="0;url=http://finalpage.com" />

そこから、(他の人が示唆しているように) 正規表現を作成して URL を見つけ、そのコンテンツを取得できます。

于 2012-09-28T04:26:11.740 に答える
1

返された html を調べて、リダイレクトがコード内のどこに配置されているかを調べます。データを変数に入れ、正規表現で処理し、リダイレクト先の URL を取得し、新しい curl リクエストで新しいページ コンテンツを取得します。

于 2012-09-28T04:19:15.697 に答える
-1

その方法が分かった!

http://www.finalpage.comが内容を表示する前に再送信することを検出しました。だから私はこのhttp://www.mishainthecloud.com/2009/12/screen-scraping-aspnet-application-in.htmlを使ってカールさせ、欲しいものは何でも手に入れました。みんなありがとう!

于 2012-10-19T01:12:44.847 に答える