1

特定の 180 のソースのみのコンテンツをインデックス化する php Web クローラーを作成しましたが、必要なコンテンツ (画像、URL、タイトル、完全なコンテンツ、抜粋、タグ) を分析、取得、保存するのにページあたり平均 2 秒かかります。(すべてのメタ タグを分析して正しいデータを取得するアルゴリズムがいくつかあります)

私は最新の 9 つの記事ページのみをクロールするので、ソースごとに 18 ~ 25 秒かかります。

10 個の異なる cron ジョブを作成したため (その間に 6 分)、それぞれが 18 個のソース (約 350 秒) を処理できます。

特に1kのソースに到達したい場合、これは非常に非効率的です。何を変更すればよいですか?

ps: 共有ホスティングでテストしていますが、専用サーバーを使用すると時間を大幅に短縮できますか?

cron ジョブは次のようなものです。

lynx -auth ユーザー名:パスワード website.com/crawler.php?group=1

lynx -auth ユーザー名:パスワード website.com/crawler.php?group=2

lynx -auth ユーザー名:パスワード website.com/crawler.php?group=3 など。

クローラー スクリプトはデータベースから 18 のソースにアクセスし、最新の 9 つの記事ページを取得してコンテンツをクロールし、分析し、結果に基づいてデータベースに保存します。

4

1 に答える 1

1

正直なところ、これにはcronジョブを使用しないでください。デーモンをセットアップすると、常に実行されます。クラッシュした場合などにリスポーンします。

http://pear.php.net/package/System_Daemon

于 2012-09-26T15:49:05.990 に答える