2015-06-15 96 views
1

爆炸我想分析從外部網頁的一些數據(遊戲名): https://www.mol.com/Product/GamesHive使用時,某些數據丟失在PHP

使用此代碼:

<?php 
    $url = 'https://www.mol.com/Product/GamesHive'; 
    $content = file_get_contents($url); 
    $first_step = explode('<div class="col-xs-4">', $content); 
    $second_step = explode('</div>', $first_step[1]); 
    echo $second_step[0]; 
?> 

但是有些數據會丟失。原始頁面有384項目,我的頁面只有169項目。有什麼問題?

+0

因爲某些元素可能包含額外'class'或'id' – Tushar

+0

問題是當'

'或''發現,將非常具有除去。 –

+1

不要在html上使用像這樣的字符串操作。並非所有的「col-xs-4」標籤都是這樣的,例如''將由爆炸得到MISSED''div class =「col-xs-4 xs-margin-bottom-40」>。使用DOM解析器和xpath來獲取任何你想要的。 –

回答

0

這是你想要實現的嗎?

<?php 

$curl = curl_init(); 

curl_setopt_array($curl, 
    array(
     CURLOPT_URL    => 'https://www.mol.com/Product/GamesHive', 
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_SSL_VERIFYHOST => 0, 
     CURLOPT_SSL_VERIFYPEER => FALSE 
    ) 
); 

$response = curl_exec($curl); 

curl_close($curl); 

$arr = simplexml_import_dom(@DOMDocument::loadHTML($response)) 
     ->xpath('//div[@class="caption"]'); 

foreach ($arr as $val) 
{ 
    echo $val->h5->a . '<br />'; 
} 

?> 
+0

您能否再打開一下代碼?至少有一些評論會很好。另外'VERIFYPEER/VERIFYHOST => false'被認爲是不好的做法。 – ojrask