使用来自不同域网址的 php curl 抓取数据


Grab Data using php curl from different domain urls

>我需要使用 php preg 匹配从不同的域网址获取价格,我在这里遇到价格获取问题,但显示错误的价格。在这里,我需要从网址中获取flipkart,亚马逊价格。get_page函数是 curl 来获取数据。

法典

<?php
$urls=array('http://www.flipkart.com/moto-e/p/itmdvuwsybgnbtha?pid=MOBDVHC6XKKPZ3GZ','http://www.amazon.in/gp/product/B00Q2HGF3Q');
foreach($urls as $url)
{
//flipkart
if(preg_match("/flipkart'.[com|in]/is",$url))
{
    $data['type'] = "flipkart.in";
   if(preg_match("/class='"price['s]fk-display-block'">Rs'.(.*?)<'/span>/is", get_page($url), $m))
    {
        $m[1] = strtolower($m[1]);
        $data['price'] = (float) str_replace(array('rs.', ','),'',$m[1]);
    }
    elseif(preg_match("/data'-evar48='"([0-9+]+?)'"/is", get_page($url), $m))
    {
    $m[1] = strtolower($m[1]);
    $data['price'] = (float) str_replace(array('rs.', ','),'',$m[1]);
    }
}
//amazon
    if(preg_match("/amazon'.in/is",$url))
    {
    $data['type'] = "amazon.in";
    if(preg_match("/class='"currencyINR'"['s]style='"display:none'">Rs.['s]<'/span>(.*?)<'/span>/is", get_page($url), $m))
    {
    $m[1] = strtolower($m[1]);
    $data['price'] = (float) str_replace(array('rs.', ','),'',$m[1]);
    }
    }
var_dump($data);
}

?>

试试这个翻转卡丁车价格:

preg_match('/<span class="selling-price.*?data-eVar48="(.*?)">/',$sourcestring,$matches);
echo $matches[1];

试试这个新代码,这将分别给出 flipkart 和亚马逊的价格:

<?php
$urls=array('http://www.flipkart.com/moto-e/p/itmdvuwsybgnbtha?pid=MOBDVHC6XKKPZ3GZ','http://www.amazon.in/gp/product/B00Q2HGF3Q');
foreach($urls as $key => $url)
{
//flipkart
if(preg_match("/flipkart'.[com|in]/is",$url))
{
    $data[$key]['type'] = "flipkart.in";
   if(preg_match('/<span class="selling-price.*?data-eVar48="(.*?)">/',get_page($url),$matches))
    { 
        $data[$key]['price']=$matches[1];
    }
}
//amazon
    if(preg_match("/amazon'.in/is",$url))
    {
        $data[$key]['type'] = "amazon.in";
        if(preg_match('/<span class="currencyINR">&nbsp;&nbsp;<'/span>(.*?)<'/span>/', get_page($url),$matches1))
        {
            $data[$key]['price']=$matches1[1];
        }
    }

}
var_dump($data);
?>