質問: 以下の様ないくつかのサイトを纏めて検索するサイトの作り方(PHP実装のロジック方針)を教えてください。 ※アダルト系なので未成年・女性の方はご注意ください。 現在大学生です。学科とは関係なのですが、プログラミングに興味があり、ORACLE SILVERを取得しました。今度はアプリケーションやサイトを作りたくいろいろ参考になるサイトを見ておりましたが、上記のようなサイトの作り方が分からず困っています。 私が考えたやり方ですと 1それぞれのサイトに入って検索をする 2その検索結果のhtmlから必要な情報(動画のID等をぬく) 3抜いた情報を元に表示する だと思ったのですが、それだと複数のページにまたがる結果を取得する際の挙動が分かりません。 (上記のサイトで検索結果2ページ目以降を表示する際には、再度対象の検索サイトに検索をかけに行く動きになっているのでしょうか?検索ヒットの総数も全体の件数を計算したうえで表示しているように見えます。) かといってyoutube等のDBに直接クエリは投げられませんし、、、 一体どうやっているのか検討がつく方いらっしゃいましたら勉強の為にご教示下さい。
回答: 複数のサイトの検索結果をどうソートするかにもよるのですが、 例えばYouTubeの場合は再生回数の多い順にソートできるので、 「magic」の場合は、 となり、20件の検索結果が返されます。 以降のデータは、 というように「&page=2」や「&page=3」を付加すれば取得できます。 「&page=0」と「&page=1」は同じ結果で最初の20件が表示される仕組みです。 例えば3つのサイトを検索するとして、1ページ目が全て20件であった場合、 その60件のデータを全て集めて再生回数の多い順にソートします。 1ページに表示しようとする件数が20件であった場合はここまででOKです。 2ページ目以降が問題で、21件目から39件目までのソート結果に、 特定のサイトの20件目が表示されてしまっている場合、 その特定のサイトの21件目以降を取得し、追加してソートし直します。 そしてソート結果の21件目から40件目を表示します。 このように、足りなくなった可能性があればアクセスするという方法があります。