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