php - PHPでCurlを使用したWebクロール

原文 php curl

私はWeb開発が初めてです。 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;
?>


どんな助けでも大歓迎です。

前もって感謝します。
答え
symfony domクローラーを使用します:http://symfony.com/doc/current/components/dom_crawler.html

composerでインストールするか、ダウンロードすることができます。

ドキュメントからの簡単な例:

<?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');
関連記事

php - Yiiモジュールが機能しない

php - LaravelでZend Feed Readerを使用する方法

php - jquery Datatablesの同じ結果

php - 偽の配列値を偽の境界外インデックスと区別するにはどうすればよいですか?

javascript - 入力タイプを確認し、[保存]をクリックしている間は入力「パスワード」フィールドをスキップしてください

javascript - Angular Save vars to laravel session with ajax call do not work

php - ZF2 setPartialサブメニューにパラメーターを追加

php - カスタムインストールされたPHPをデフォルトとしてロードする

php - プロパティにアクセスするときに関数を呼び出す(PHPマジックメソッド)

php - PHPで私のローカル時間を追跡する方法