[英]PHP DOM parser breaks the page and can't load page content
我創建了一個PHP分析器,該分析器必須在span標簽中提取價格,但是當我回顯$ html以便看到頁面的加載方式時,它顯示了一個沒有內容的損壞頁面。 而是僅加載頁眉和頁腳,而不加載內容。 內容似乎是通過JavaScript從外部加載的,我的問題是如何使用Dom加載html頁面,以便也加載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;
}
}
?>
替代方法
您實際上正在尋找的鏈接(以他的最小表達方式)是: 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'
從現在開始,如果您需要另一個價格,您必須知道intem的pid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.