リモートサイトからチャート画像を取得しようとしています。
しかし、画像は呼び出されたときにサイトから動的に作成されたように見えました。
ログインしていない場合は何も返されません。
これは画像のURLです
<img src="http://fuelbuyer.dtn.com/energy/view/energy/chart.do?width=150&height=120&chartType=0&ts=1352196066175&rackId=446&productId=179&points=8&showExtraLine=True">
どういうわけかこのコードを使ってログインし、画像を表示しようとしました。
しかし、それは機能していません。
$ch = curl_init();
$url = 'http://fuelbuyer.dtn.com/energy/common/signin.do?';
$login = 'username=$USER&password=$pass&autoLogin=true&partnerId=0&partnerName=';
curl_setopt($ch, CURLOPT_URL, $url.$login);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
画像のURLを直接呼び出すと(ブラウザのアドレスバーでログインしている場合のみ)、次のようなコードが表示されます。
"‰PNGIHDR–xŸ-œGPIDATxÚílÇÇIHKB-ËuÄت!Eš°Š!ÈBIÀµ©…œ€$ @S‡8¶ªÀ"D²œÐbRÆ`˜WjAx;〜Äø…ç・ï±;³ýÎk×û +´Ü÷v÷・3óÿf¾™òqnAa@„ùÂM›6åÔ5}£¡k訚Ži踶¾USž†Nh(_M'5tJCÁ™°、ðN?ÿ¼3>¾=5µîòåêÕô©V¢:‰ê%º+ QƒD5õ©Y"›D-Õ*Q›Dí}ê¨S¢。‰º%²Kä蓳۹“߸ÑUPà'ˆ“ ˆ—õéôéÓ!rBP¸¡Ÿÿ¼®¨¨F"ïò“ "´ÂOŠÐ4? G} =ŽŠ"×ÎgdPòc!†#— [WB}"
しかし、のように呼ばれるとき
<img src="http://fuelbuyer.dtn.com/energy/view/energy/chart.do?width=150&height=120&chartType=0&ts=1352196066175&rackId=446&productId=179&points=8&showExtraLine=True">
正しい画像が得られます。
私は本当に次に何をすべきかわからない。
cURLを使用してサイトにログインし、この行を実行するにはどうすればよいですか。
<img src="http://fuelbuyer.dtn.com/energy/view/energy/chart.do?width=150&height=120&chartType=0&ts=1352196066175&rackId=446&productId=179&points=8&showExtraLine=True">
ログインに成功すると、サイトはホームページにリダイレクトされます。
そのため、リダイレクトも防止する必要があります。
セッションは数秒後に終了します。
よろしくお願いします、
Eugine PJ
私はそれを動かしました。このコメントを参照してください。
学校のサイトからスケジュールデータを取得できません。cURLでのログインが機能しない