在PHP中使用Curl进行Web爬网

时间:2014-12-17 06:35:45

标签: php curl

我是网络开发的新手。我在php中使用curl创建了一个Web爬虫。

我应该能够访问我网站中其他网站的特定数据。并且它不应该重定向到我提供的URL作为输入。我应该在我的网站本身访问它。比方说,我想从这个页面中提取特定数据https://shop.vodafone.in/shop/rechargeOffers.jsp 即查看所有充值 - >奖励卡 - >详情 - >详细数据弹出窗口。

我怎样才能实现它?

这是我的代码:

<?php
$url="https://shop.vodafone.in/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
$data = curl_exec ($ch);
curl_close ($ch);
// you can do something with $data like explode(); or a preg match regex to get the exact information you need
echo $data;
?>

非常感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用symfony dom抓取工具:http://symfony.com/doc/current/components/dom_crawler.html

您可以使用编辑器安装或下载它。

来自文档的简单示例:

<?php

   use Symfony\Component\DomCrawler\Crawler;

   $html = <<<'HTML'
   <!DOCTYPE html>
   <html>
        <body>
           <p class="message">Hello World!</p>
           <p>Hello Crawler!</p>
        </body>
    </html>
    HTML;

    $crawler = new Crawler($html);

    foreach ($crawler as $domElement) {
       print $domElement->nodeName;
    }

    //or something like this
    $crawler = $crawler->filter('body > p');