画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

ひたすらアイドル水着画像をあつめる

元ネタはこちらのブログ。
http://d.hatena.ne.jp/utgym/20121212/1355277764
http://d.hatena.ne.jp/shi3z/20121217/1355695824
http://d.hatena.ne.jp/takuya_1st/20121215/1355599918
ってか、いろいろなところで話題になってるのか。


写経してみました。



写経した結果はこんな感じ。

<?php
$url="http://matome.naver.jp/odai/2134417329048467401";
$res=@file_get_contents($url);

while($res){
  $data=getData($res);
  foreach($data["image"] as $image){
    echo "<img src='".$image["src"]."'>\n";
  }
  if($data["nextPage"]){
       $res=@file_get_contents($url."?page=".$data["nextPage"]);
       sleep(1); //サーバへの負荷対策
  }else{
       break;
  }
}

function getData($html){
  $dom=@DOMDocument::loadHTML($html);
  $xml=simplexml_import_dom($dom);
  $result["image"]=$xml->xpath("//img[@class='MTMItemThumb']");
  $pager=$xml->xpath("//div[@class='MdPagination03']");
  $current_page=$pager[0]->strong; //太字ページ番号の値
  $last_anchor=$pager[0]->a[count($pager[0]->a)-1];
  if($last_anchor + 1 != $current_page){ //太字のページ番号が最後のページをさしていなければ。。。
    $result["nextPage"]=$current_page + 1;
  }else{
    $result["nextPage"]=null;
  }
  return $result;
}

なんやかんやで実行した結果はこんな感じ。

元ネタは水着画像だけど、癒し系の猫画像にしてみました。
まとめのリンクはこちら。
http://matome.naver.jp/odai/2134417329048467401

写経してるなかで、ケアレスミスが多かった、、、

「pager」を、「paper」とか、「page」とか間違ってて、うごかなかったりした。
vimでいろいろやってるけど、
やっぱりこういう時は補完機能が必要だな。


マーク・ザッカーバーグさんもこんな感じで美女の画像を集めたんですね。
彼の場合はperlか。