PHP Crawlerのコア関数は、指定されたWebページから必要なデータを取得することです。これは、HTMLページを処理できるだけでなく、APIインターフェイスによって返されるコンテンツをクロールすることもできます。 PHPの組み込みDomdocumentクラスを使用して、HTML構造を簡単に解析し、データ抽出を実装できます。
コード例:
$url = "https://example.com";
$html = file_get_contents($url);
$dom = new DOMDocument();
$dom->loadHTML($html);
キャプチャされたコンテンツは通常、さらにクリーニングおよびフィルタリング、キー情報、フォーマットされたデータなどを抽出する必要があります。正規表現、文字列関数、json_decodeなどのツールで効率的に処理できます。
コード例:
// 正規表現を使用してWebページタイトルを抽出します
$pattern = "/<title>(.*?)<\/title>/";
preg_match($pattern, $html, $matches);
$title = $matches[1];
オブジェクト指向の方法は、クローラー関数をカプセル化するために使用されます。これは、コードの再利用性を改善するだけでなく、その後の拡張とメンテナンスを促進します。爬虫類クラスの簡単な例:
class Spider {
private $url;
public function __construct($url) {
$this->url = $url;
}
public function crawl() {
$html = file_get_contents($this->url);
// ロジックの処理...
}
}
// インスタンス化してクローラーに電話します
$spider = new Spider("https://example.com");
$spider->crawl();
ターゲットWebサイトによってクローラーとして認識されることを避けるために、実際のユーザーアクセス動作をシミュレートするためにリクエスト間にランダムな遅延を追加することをお勧めします。 PHPの睡眠機能を使用して実装できます。
// 遅れ1到着32番
sleep(rand(1, 3));
クロールする前に、ターゲットウェブサイトのrobots.txtファイルを確認し、ウェブサイトのクロールルールを尊重し、禁止されたページにアクセスしないようにし、それらが合法で準拠していることを確認してください。
コード例:
$robotstxt = file_get_contents("https://example.com/robots.txt");
// アクセススコープはコンテンツに基づいて判断できます
ターゲットWebサイトの過度の負荷を回避するために、要求頻度を合理的に制御します。次のリクエストを行う前に、各リクエストの後に一定期間待つことをお勧めします。
// リクエストの後に待ちます22番
usleep(2000000);
この記事では、PHPクローラー開発、オブジェクト指向設計、アクセス制御、および使用中の予防策の基本的な機能を包括的に紹介します。これらのベストプラクティスを習得することは、さまざまなデータ収集のニーズを満たす効率的で安定した準拠のクローラープログラムの開発に役立ちます。