获取带有动态内容的html源代码来进行正则表达式分析

时间:2013-06-12 16:53:04

标签: php jquery curl

在我的项目中,我需要在服务器中获取另一个网页的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获取数据。有什么方法可以做到这一点吗?我很新,任何帮助都会受到赞赏。

1 个答案:

答案 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.