この PHP スクリプトでは、何らかのヘッダー チェックが行われており、誰かがコンテンツをスクレイピングしようとしているのではなく、ブラウザーが画像を要求していることを確認しています。これは、cURL を使用して偽造することができます (ただし、このようなことをした後は、シャワーを浴びる必要があるように感じます)。具体的にはcurl_setopt()
:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-agent: Some legitimate string'
));
どのヘッダーを送信する必要があるかを確認するには、いくつかの実験を行う必要があります。Google Chrome を使用している場合は、おそらく Inspector を使用したことがあります (使用していない場合は、Firefox に同様のアドオンがあるため、Firebug などを使用できます)。Chrome で画像をリクエストすると、右クリックして検査できます。[ネットワーク] タブに移動します。ページを更新します。へのリクエストproduct_image.php
が表示されます。それをクリックして [ヘッダー] タブをクリックすると、送信されたヘッダーのリストが表示されます。私のブラウザは、、、、、およびをUser-Agent
送信します。Accept
Accept-Encoding
Accept-Language
Accept-Charset
これらのヘッダーと有効な値の組み合わせを試して、画像を返すために送信する必要があるヘッダーを確認してください。このサイトはおそらくチェックするだけUser-agent
なので、そのサイトから始めてください.
重要な注意:この呼び出しの結果をキャッシュする必要があります。これは、サーバーが画像を立て続けに複数回要求した場合 (たとえば、サイトの多くのユーザーがこの画像を取得するスクリプトを要求した場合) は非常に疑わしいためです。また、匿名性の追加レイヤーとして、User-agent
有効なものの配列から選択して、bobshop.nl がすべての要求が大規模なネットワーク (大学のキャンパスなど) の背後にあるユーザーから来ていると見なすようにすることもできます。UserAgentString.comで有効なユーザー エージェント文字列を見つけることができます。