0

在我的项目中,我需要在我们的服务器中获取另一个网页的 html 内容。问题是特定页面有一些动态内容,我需要该内容中的数据来进行正则表达式分析。

页面中的示例内容

    <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();
    });
}

内容加载在 div 标签中,带有id="nreults". 我可以在检查元素时查看数据,但无法使用 CURL 获取数据。有什么办法可以做到这一点吗?我很新,任何帮助将不胜感激。

4

1 回答 1

0

不是直接的。您需要使用 cURL 发送与 javascript 发出的相同请求,这将返回的不是整个页面,而是动态加载到#nresults.

$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.
于 2013-06-12T17:54:30.593 回答