1

サイトから製品のリストを取得する Web クローラーを設計しています。シンプルな HTML DOM パーサーfile_get_contents()を試して、HTML を取得して解析しました。しかし、HTML コンテンツの取得に時間がかかりすぎています。また、巨大なサイズのページであるため、多くの解析オーバーヘッドも発生します。可能であれば、必要な HTML コンテンツのみをフェッチしてフェッチを高速化する方法を探しています。同様に.. file_get_contents() で offset および maxlen パラメータを使用します。ただし、シーク (オフセット) はリモート ファイルではサポートされていません。

 string file_get_contents ( string $filename,false, 9000, 5000)

これを行う他の方法はありますか?

4

1 に答える 1

1

Rangeリクエストのヘッダーを使用して、HTTP プロトコル レベルでこれを行うことができます。ただし、他のサーバーがそれらを理解したり尊重したりすることは保証されていません。さらに、関心のあるコンテンツの正確なバイト オフセットを本当に知っていますか? それは本当にもろくなるように聞こえます。また、部分的な HTML ドキュメントのみを取得する場合は、解析に苦労する可能性があります。

HTTP ヘッダーを設定するための Contextsの$contextパラメーターと関連ドキュメントを参照して、ヘッダーを試してください。file_get_contentsRange

于 2012-11-07T08:30:11.447 に答える