2017-03-01 27 views
1

我想從任何電子商務網站使用產品頁面URL獲取價格和尺寸 我在這裏寫我的代碼,您可以在其中看到我如何獲取圖像從任何網站。如何從任何電子商務網站獲取產品的價格和尺寸使用捲曲PHP

<?php 
function file_get_contents_curl($url) 
{ 
    //$ch = curl_init(); 
$options = array(
     CURLOPT_RETURNTRANSFER => true,  // return web page 
     CURLOPT_HEADER   => false, // don't return headers 
     CURLOPT_FOLLOWLOCATION => true,  // follow redirects 
     CURLOPT_ENCODING  => "",  // handle all encodings 
     CURLOPT_USERAGENT  => "spider", // who am i 
     CURLOPT_AUTOREFERER => true,  // set referer on redirect 
     CURLOPT_CONNECTTIMEOUT => 120,  // timeout on connect 
     CURLOPT_TIMEOUT  => 120,  // timeout on response 
     CURLOPT_MAXREDIRS  => 10,  // stop after 10 redirects 
     CURLOPT_SSL_VERIFYPEER => false  // Disabled SSL Cert checks 
    ); 

    $ch  = curl_init($url); 
    curl_setopt_array($ch, $options); 
    $content = curl_exec($ch); 
    curl_close($ch); 

    return $content; 


} 
//http://www.ralphlauren.com/product/index.jsp?productId=102437456 
//https://www.amazon.com/U-S-Polo-Assn-Tyra-Fashion/dp/B01KY73PKU 
//http://www.6pm.com/p/cole-haan-benson-camera-bag-ivory/product/8877280/color/422 
//https://www.daraz.pk/prime-black-mens-slim-fit-leather-jacket-t11-5437633.html 
$html = file_get_contents_curl("http://www.6pm.com/p/cole-haan-benson-camera-bag-ivory/product/8877280/color/422"); 

?> 

<div style='display:none'><?php echo $html;?></div> 

<?php 



//parsing begins here: 
$doc = new DOMDocument(); 
@$doc->loadHTML($html); 

$nodes = $doc->getElementsByTagName('title'); 

//get and display what you need: 
$title = $nodes->item(0)->nodeValue; 

$metas = $doc->getElementsByTagName('meta'); 
$keywords = ''; 
for ($i = 0; $i < $metas->length; $i++) 
{ 
$meta = $metas->item($i); 
if($meta->getAttribute('name') == 'description'){ 
$description = $meta->getAttribute('content'); 
} 
$prop = $meta->getAttribute('property'); 
if($prop === 'og:image'){ 
    $keywords = $meta->getAttribute('content'); 
    if($keywords != ''){?> 
    <input id="ogImg" type="hidden" value="<?php echo $keywords; ?>" /> 
<?php 


     } 
    } 

} 

echo "Title: $title". '<br/><br/>'; 
//echo "Description: $description". '<br/><br/>'; 
$items = $doc->getElementsByTagName('img'); 

for ($i = 0; $i < $items->length; $i++) { 
echo $hi = $items->item($i)->getAttribute('id') ; 
$bye = $items->item($i)->getAttribute('src') ; 
//$hi= str_replace(' ','',$hi); 
//echo gettype($hi).'type<br>'; 
     if($hi !== ''){ 
      //var_dump($items->item($i)->getAttribute('id')); 
      $newid = $hi; 
      ?> 
      <img src="<?php echo $bye; ?>" /> 
      <input type="hidden" id="myid" value="<?php echo $hi ?>" /> 

      <?php 

      break; 
     } 
// var_dump($items->item($i)); 
} 
?> 
<style type="text/css"> 

    #imgFetch img{ 
     border: 1px solid grey; 
     padding: 3px; 
     border-radius:10px; 
    } 
</style> 
<script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
<script type="text/javascript"> 
setTimeout(function(){ 

    var myval = $('#myid').val(); 
    if(myval !== undefined) 
    var elem = $('#'+myval).get(0).outerHTML; 
    var ogImg = $('#ogImg').val(); 
    if(ogImg !== undefined){ 
     src = ogImg; 
    }else{ 
    var src = document.getElementById(myval).src; 
    } 
    $('body').append('<div id="imgFetch"><img src="'+src+'" /></div>'); 
    $('#imgFetch img').css('width','150px'); 
    $('#imgFetch img').css('height','130px'); 

    }, 0000); 


</script> 

什麼,我這裏做的是在$ HTML讓整個HTML和回聲也是我用getElementByTagName函數獲取圖像對象,我已經得到了正確的形象,它適用於任何網站url.But問題,我不知道我該如何定位與該圖像給出的價格和尺寸。如果價格和尺寸在選擇元素中,我想要抓取整個ul元素或選擇元素。所以請告訴我是否有任何解決方法。

+0

我已搜查了整個谷歌和我敢肯定,沒有什麼上對此topic.Not一個教程谷歌。 – Hassaan

+0

爲** any **網站申請解決方案非常有抱負。但是,如果你可以把你的問題縮小到**一個你遇到問題的例子,那麼或許我們可以提供幫助。請[請參閱此處瞭解如何創建最小示例](http://stackoverflow.com/help/mcve)。 – gus27

+0

謝謝,但我已經在這裏插入整個代碼ease.If任何人都可以知道它是如何工作的,然後他只是把它作爲PHP文件,並運行它來查看我的結果。 – Hassaan

回答

0

您可以分析使用PHP簡單的HTML DOM解析器的HTML元素,通過這個http://simplehtmldom.sourceforge.net/

+1

我如何可以針對每個網站。簡單的Dom解析器使數組,但我怎麼可以針對每個網址來獲得所需的結果。 – Hassaan

相關問題