私はウェブサイトのスクレイピングを含む新しいプロジェクトを開始しているので、PHPCrawl http://cuab.de/quickstart.htmlを使用することを計画しています。これは、これに最適な PHP ベースのソリューションのように見えますが (他の提案がない限り)、実行しましたなかなか頭に入らない問題に。
だから私は PHPCrawl クラスをインポートします
App::import('Vendor', 'PHPCrawl', array('file' => 'PHPCrawl/libs/PHPCrawler.class.php'));
次に、そのすぐ下で PHPCrawl クラスを拡張して、データを次のように処理します。
class MyCrawler extends PHPCrawler{
function handleDocumentInfo($DocInfo) {
//handle data here
}
}
しかし、私の問題は、そのメソッド内から create() や save() などの CakePHP メソッドを実行する必要があるときに発生します。クラス内に CakePHP モデルの新しいインスタンスを作成しようとしましたが、警告が表示されます。
Maximum function nesting level of '100' reached, aborting!
したがって、これがクラスインスタンスの無限ループを作成していると思います。私がやりたいことは handleDocumentInfo() 関数をオーバーライドすることだと思いますが、私の CakePHP クラス内でそれは可能ですか?
これが明確でない場合は申し訳ありません。これについてどうすればよいかわかりません。