抓取一个网站的价格数据使用PHP,但它返回零(==$0)可能是该网站正在阻止我.如何克服它


Scraping a website for price data using PHP but it returns zero(==$0) may be the website is blocking me. How to over come it?

这是我使用的代码:

$curl = curl_init("https://www.flipkart.com/curren-cu2-345656-analog-watch-boys-men/p/itmeax4wh4ujcfft?pid=WATEAX4WGYNYWVCM&srno=b_1_1&otracker=hp_omu_Deals%20of%20the%20Day_5_15c7e867-d35a-4431-a4a0-da39f043bc1f_0&lid=LSTWATEAX4WGYNYWVCMHVLY32");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10');
$html = curl_exec($curl);
curl_close($curl);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tableRows = $xpath->query('//*[@id="container"]/div/div[2]/div[2]/div/div/div[1]/div/div[2]/div/div[2]/div[2]/div[1]/div/div[1]');
echo $tableRows[0];
echo $tableRows[1];
echo $tableRows[2];
foreach ($tableRows as $row) {
    echo $row . "<br>";
}

它显示零,当我在F12开发人员模式下打开源代码时,它显示div旁边的"==$0",我如何克服这个问题?

flipkart是https,所以它会阻止你的请求。为了克服这个问题。请使用以下两行代码加上curl请求。

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);     
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);