[http://m.baidu.com][Baidu モバイル端末に基づいて、主にこのモバイル端末をテストします]
300 KB 以上の Baidu 検索結果を取得するリンクを直接シミュレートし、クライアントのブラウザにプッシュしますGzip 圧縮にも約 100KB かかり、1.0 秒近くかかります。しかし、Baidu 自身がブラウザに最初に取得するコンテンツはわずか約 30 KB です。どうして百度と同じになれるのでしょうか。 Baidu の検索結果を取得するために PHP でいくつかの方法を試しましたが、スタイルやすべてが一緒に読み込まれます。
例:
$url="http://m.baidu.com /s?word=".$kw;
$html=file_get_contents($url);
//$html > 300KB
//Apache Web ページが圧縮されてブラウザに送信された後も、まだ 97.8KB が残っています
最初の get には実際にはスタイルがあります
しかし、Baidu 自体によって送信される実際の最初の get はわずか 30.3 KB であり、最初にスタイルがありません
ブラウザ自体にスタイルをロードするように、クライアントブラウザにどのようにプッシュできますか?議論 (解決済み) 解決策)
質問は少し長いので、すべてを理解できないかもしれません
300K から 30K に圧縮したい場合は、2 つの重要なポイントがあります:1: あなた。リクエストヘッダーに Accept-Encoding: を追加する必要があります。gzip、deflate、sdch、これは 100K を返します、gzip デコードは完了します
2: Baidu ホームページにアクセスした Cookie を持ってくるので、30K になります。具体的な方法は、Cookie を一度キャプチャしてファイルにキャッシュし、クエリ時にこれらの Cookie をすべて持ち込むことです。
ちょっとわかりにくいようです。具体的なアプローチは何ですか?コードを直接投稿していただけますか?
【上記の質問の意味は、自分のページにBaidu検索エンジンを入れ子にしたいのですが、取得した検索結果を二次処理して表示する必要があるのですが、この処理に非常に時間がかかります。クロール後に初めて消費される時間、二次処理の時間 [これは制御可能]、表示するページにプッシュするのにかかる時間 (このプッシュ ファイルは Baidu ほど小さくすることはできません)] 少し長いので、完全ではないかもしれません。読んでください
少しわかりにくいようです。具体的なアプローチは何ですか?コードを直接投稿していただけますか?
【上記の質問の意味は、自分のページにBaidu検索エンジンを入れ子にしたいのですが、取得した検索結果を二次処理して表示する必要があるのですが、この処理に非常に時間がかかります。クロール後に初めて消費される時間、二次処理の時間 [これは制御可能]、表示するページにプッシュするのにかかる時間 (このプッシュ ファイルは Baidu ほど小さくありません)]