无法从myntra中删除内容

时间:2017-01-31 07:58:03

标签: php curl

尝试使用下面给出的代码从myntra中删除内容,相同的代码对于snapdeal工作正常,任何人都可以帮助我解决我在哪里?

$url = 'www.myntra.com/tshirts/roadster/roadster-men-black-striped-polo-collar-t-shirt/1353945/buy?src=search&uq=false&q=men-tshirts&p=1';
         $request_headers = '[
                "Accept: text/xml,application/xml,application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
                "Accept-Encoding: gzip, deflate",
                "Connection: keep-alive",
                "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
                "Cache-Control: max-age=0",
                "Content-Type: text/html; charset=UTF-8",
            ]';

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100508 SeaMonkey/2.0.4');
        //curl_setopt($ch, CURLOPT_MAXREDIRS, 50);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FAILONERROR, true); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);

        $cl  = curl_exec($ch);
        //print_r($cl);
        if($cl === false){

             echo 'Curl error: '.curl_errno($ch). '-' . curl_error($ch);

        }else{
             $dom = new DOMDocument();

             $dom->loadHTML($cl);

             $xpath = new DOMXpath($dom);

             $pName = $xpath->query('//h1[@class="pdp-title"]/text()'); //pdp-title  pdp-e-i-head

             $pro   = $pName->item(0)->nodeValue;

             echo $pro;
             //var_dump($pName);
        }

在做curl的同时给出错误“Curl error:47-Maximum(20)redirects follow”, 因为我是新手,基本上没有接下来做什么......

在删除if else条件时显示domnodeobject:value ommited,

没有任何线索,这个问题的真正原因是什么。

我在命令提示符下运行curl它正确地显示了页面,但是通过浏览器它连续发出错误:“卷曲错误:47-最大(20)重定向跟随”..

提前致谢,等待建议......

2 个答案:

答案 0 :(得分:1)

有两个选项:

  1. 在网页上呈现JS内容。您可以使用PhantomJS进行渲染。查看本教程http://shout.setfive.com/2015/03/30/7817/
  2. 直接解析json文件:

    http://www.myntra.com/web/style/similar/Roadster-Men%20Black%20Striped%20Polo%20Collar%20T-shirt/1353945

答案 1 :(得分:-1)

使用nodejs可以轻松完成Scraping Myntra。你可以使用cheerio加载和注入jquery并访问你想要的所有元素并抓取它们,你也可以使用fast-csv或其他一些npm库来以你想要的格式导出数据。这种方法比phantom.js

更快

这是一篇关于scotch.io的精彩文章,可以帮助您入门

https://scotch.io/tutorials/scraping-the-web-with-node-js