如何通过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 的内容?
注意:如果我没有回音,则不会返回任何内容,也不会重定向到任何页面
非常感谢你!
答案 0 :(得分:5)
尝试使用它来查看curl响应的HTML:
echo htmlspecialchars($data);
某处可能存在javascript或元重定向。寻找这个:
window.location...
或
document.location...
或
<meta http-equiv="refresh" content="0;url=http://finalpage.com" />
从那里,您可以构建一个正则表达式(正如其他人建议的那样)来查找URL,然后获取它的内容。
答案 1 :(得分:0)
浏览返回的html,找出重定向放在代码中的位置。将数据放入变量中,使用正则表达式对其进行处理,获取重定向到的url并使用新的curl请求获取新页面内容。
答案 2 :(得分:0)
我发现了怎么做!
我发现 http://www.finalpage.com 在显示内容之前重新提交了它。所以我用这个http://www.mishainthecloud.com/2009/12/screen-scraping-aspnet-application-in.html来卷曲它,我得到了我想要的任何东西。谢谢大家!