現在、スクレイピングを勉強しており以下のような場合どうしたらいいのか悩んでおります。
curlで指定したURLへアクセスした際、そのページ内ではimage.phpというものを使って画像をランダム表示しています。
そこで現在は再度image.phpへアクセスし、画像を取得していますが、
それだと最初にアクセスした時の画像とは別の画像が取得されてしまいます。(image.phpへの2度目のアクセスなため)
最初にアクセスした際、ページ内でのimage.phpへのアクセスのレスポンスを取得する方法などありませんでしょうか?
有識者の方にお知恵をお貸しいただければと思います。
よろしくお願い致します。
追記です。
対象サイトがユーザー登録が必要なためサンプルを作成しました。
http://match1020.php.xdomain.jp/
上記URLは表示時に画像が別プログラムでランダムで表示されます。
このサイトに対して
$url = "http://match1020.php.xdomain.jp/"; // cURLオプションの設定項目 $option = [ // trueを設定すると返り値を文字列で出力 CURLOPT_RETURNTRANSFER => true, ]; // cURLセッションを初期化 $ch = curl_init($url); // 転送時のオプションを設定 curl_setopt_array($ch, $option); // cURL セッションを実行 $data = curl_exec($ch); // cURLセッションを終了する curl_close($ch); // TODO:表示された画像のソースを取得したい
レスポンスである$dataにはtest.phpによって表示された画像の情報を見つけられませんでした。
optionなども調べているのですが、何かoptionを追加することで
中で呼ばれているプログラムの結果を取得できないかと模索中です。
さらに追記です。
本サイトには文章があり、初期表示の際には文章と画像が紐づいているのですが、
別途画像表示のプログラムにアクセスすると画像がランダムに変わるようで
画像と文章の紐付きが壊れてしまいます。
回答2件
あなたの回答
tips
プレビュー