PHP DOM解析器破坏了页面,不能加载页面内容


PHP DOM parser breaks the page and can't load page content

我已经创建了一个php解析器,它必须在span标记中提取价格,但是当我回显$html以便我可以看到页面如何加载时,它显示给我一个没有内容的破碎页面。相反,只加载页眉和页脚,而不加载内容。内容似乎由JavaScript外部加载,我的问题是我如何加载html页面与Dom,使JavaScript也加载?我需要让整个内容加载,这样我就可以得到div和span。这是我的代码:

<?php
require_once('simple_html_dom.php');
$url = 'http://oldnavy.gap.com/browse/product.do?cid=99570&vid=1&pid=714649002';
$dom = new domDocument('1.0', 'UTF-8');
$html = file_get_html($url);
echo $html;
if(is_object($html)){
    foreach ( $html->find('span#priceText') as $data){
        $raw_price = $data->innertext;
        echo $raw_price;

    }
 }
?>

Alt方式

您实际寻找的链接(在他的最小表达式中)是:http://oldnavy.gap.com/browse/productData.do?pid=714649

现在使用curl加载它,将值放入unknownShopperId cookie,将其爆炸成一个数组,并获得您需要的价格:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "http://oldnavy.gap.com/browse/productData.do?pid=714649");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: unknownShopperId=E853DA3B2607DDAA5F2FE13CE8D32ACF"));
$result = curl_exec($ch);
$explode = explode(',', $result);
echo 'Original price: ' . $explode[92] . '<br/>' .
'New price: ' . $explode[93] . '<br/>' .
'Both prices: ' . $explode[13];

结果是:'$14.94'

从现在开始,如果你需要另一个价格,你必须知道这个项目的pid