尝试使用下面给出的代码从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)重定向跟随”..
提前致谢,等待建议......
答案 0 :(得分:1)
有两个选项:
直接解析json文件:
答案 1 :(得分:-1)
使用nodejs可以轻松完成Scraping Myntra。你可以使用cheerio加载和注入jquery并访问你想要的所有元素并抓取它们,你也可以使用fast-csv或其他一些npm库来以你想要的格式导出数据。这种方法比phantom.js
更快这是一篇关于scotch.io的精彩文章,可以帮助您入门