无法从myntra中抓取内容

问题描述 投票:0回答:2

试图用下面给出的代码从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条件它显示dom节点对象:值省略,

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

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

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

php curl
2个回答
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
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.