在我的项目中,我需要在服务器中获取另一个网页的html内容。问题是特定页面有一些动态内容,我需要该内容中的数据进行regx分析。
来自页面的示例内容
<div id="loading" class="loading">ESPERE UN MOMENTO POR FAVOR...<br /><img src="images/cargador.gif" border="0" alt="ESPERE UN MOMENTO POR FAVOR..." /></div>
<p></p>
<div class="tabla_d">
<form method="post" action="xxx">
<div id="nresults"></div>
</form>
</div>
<script language="javascript">
function checkavailability() {
jQuery("#loading").slideDown();
jQuery.post("cart.php", { a: "noptions", sld: jQuery("#sld").val(), tld: jQuery("#tld").val(), checktype: 'transfer', ajax: 1 },
function(data){
$('html, body').animate({scrollTop: '550px'}, 800);
jQuery("#nresults").html(data);
jQuery("#nresults").slideDown();
jQuery("#loading").slideUp();
});
}
内容使用id="nreults"
加载到div标记中。我在检查元素时可以查看数据,但是我无法使用CURL获取数据。有什么方法可以做到这一点吗?我很新,任何帮助都会受到赞赏。
答案 0 :(得分:0)
不直接。您需要使用cURL发送javascript所产生的相同请求,这将返回不是整个页面,而是动态加载到#nresults
的HTML。
$ch = curl_init('cart.php');
$values = array(
'sld' => 'you need to figure out what this value should be',
'a' => 'noptions',
'tld' => 'you need to figure what this value should be',
'checktype' => 'transfer',
'ajax' => 1
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $values);
$html = curl_exec($ch);
// run your regex on $html, though you probably dont want to do that
// you should probably use DOMDocument instead to operate on the DOM
// Unless you are just looking for a partuclar sring of text that has nothing
// to do with the HTML structure of the document.