「Webサービスのつくり方」 おっぱい画像をPHPで
ゆーすけべーさんが出版した「Webサービスのつくり方」を読んで
面白そうな記事があったので挑戦してみました。
「いかにして効率よく大量のおっぱい画像をダウンロードするか」という記事が第1章 22ページと第4章 開発 114ページに書いてあります。
perlでかかれたソースがゆーすけべーさんのブログに掲載されています。
googleで検索するとruby や PHP で書き直されたソースも見つける事ができました。
* いかにしておっぱい画像をダウンロードするか〜2012
* ゆーすけべーさんのおっぱいスクリプトをPHPで書き直してみた
* いかにしておっぱい画像をダウンロードするか〜2012 for Ruby
array(
'request_fulluri' => true,
'header' => "Authorization: Basic " . base64_encode($accountKey . ":" . $accountKey)
)
));
$res = file_get_contents($url, 0, $context);
$ref = json_decode($res);
$arr = $ref -> d -> results;
if (!isset($arr)) { // Resultsが定義されていない場合
break;
}
foreach ($arr as $entry) {
$img_url = $entry -> MediaUrl;
if (!preg_match('/\.jpg$/', $img_url)) { // 拡張子が.jpgでない場合
continue;
}
$oppai_count++;
$filename = md5(utf8_encode($img_url)) . '.jpg';
$filepath = $dir . '/' . basename($img_url);
if (file_exists($filepath)) { // 既に同名のファイルが存在する場合
continue;
}
echo utf8_encode($oppai_count . ' : Download...' . $img_url . "\n");
$img = file_get_contents($img_url); //画像ダウンロード
file_put_contents($filepath, $img);
if (!preg_match('/image/m', $http_response_header[2])) { // 画像で無い場合
unlink($filepath);
}
}
$page_count++;
}
?>
Bing Search API が http://datamarket.azure.com/ に移動したため、「ゆーすけべーさんのおっぱいスクリプトをPHPで書き直して」のソースをそのまま実効してみたら上手く動作しなかったので、一部ソースを変更してみました。
[PHP] Windows AzureのBing Search APIを利用する にプライマリアカウントキーの取得の仕方が書かれており参考になりました。
参考資料:
Migration Guide
Bing APIの変更に関するお知らせ
Bing Search API が Windows Azure Marketplaceで利用可能に
Bing API Schema Guide
[0]=> object(stdClass)#211 (11)
{
["__metadata"]=> object(stdClass)#212 (2) {
["uri"]=> string(124) "https://api.datamarket.azure.com/Data.ashx/Bing/Search/Image?Query='おっぱい'&Market='ja-JP'&Adult='off'&$skip=51&$top=1"
["type"]=> string(11) "ImageResult" }
["ID"]=> string(36) "4f5cded5-86c3-4700-ba49-f5ec82efdf31"
["Title"]=> string(46) "おっぱいを愛する者はおっぱい ..."
["MediaUrl"]=> string(61) "http://25.media.tumblr.com/tumblr_m50kjqfZuH1qz4fjqo1_500.jpg"
["SourceUrl"]=> string(55) "http://highlanderz.tumblr.com/post/24763403403/wayayaya"
["DisplayUrl"]=> string(48) "highlanderz.tumblr.com/post/24763403403/wayayaya"
["Width"]=> string(3) "450"
["Height"]=> string(3) "645"
["FileSize"]=> string(5) "33781"
["ContentType"]=> string(10) "image/jpeg"
["Thumbnail"]=> object(stdClass)#213 (6)
{ ["__metadata"]=> object(stdClass)#214 (1) {
["type"]=> string(14) "Bing.Thumbnail" }
["MediaUrl"]=> string(68) "http://ts2.mm.bing.net/th?id=I.4651536306537397&pid=15.1&W=111&H=160"
["ContentType"]=> string(9) "image/jpg"
["Width"]=> string(3) "111"
["Height"]=> string(3) "160"
["FileSize"]=> string(4) "8230" }
}