あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

こうして私も1000枚のおっぱい画像を手に入れた

GWはせっかく暇になったので、プログラミングのお勉強をしました。

私はプログラマーではありませんが、XHTMLCSSJavascriptなどのフロントエンド技術の他、その領域に近いプログラミングはできるようになりたいと思っています。

スクレイピングなんかはできるようになっておきたい技術のひとつです。

ということで、初スクレイピングのスクリプトを作りました。

Google App Engineも話題になっているところなので、あえてPythonで。

スクレイピングと言ったら、やっぱりおっぱいが登竜門かなと思い、おっぱい画像をたくさん手に入れようと試みました。

最近、本人インタビューでも話題になった、ゆーすけべーさんが教科書です。

似たような思いをもって取り組んでいる方も発見!

どうしてもわからないところは参考にさせていただきました。

さて、そのソースです。

試してみたい方はPython2.5以上を手に入れてください。

試して問題が生じても責任は持ちません。

>

# -*- coding: utf-8 -*-
import urllib
import os
import datetime
import time
import md5
from urllib2 import urlopen, quote
from xml.etree import ElementTree

req = {}
req["appid"] = "あなたのappid"
req["query"] = "おっぱい"
req["type"] = "any"
req["start"] = 1
req["format"] = "jpeg"
req["results"] = 50
req["adult_ok"] = 1

imagedir = "./oppaiippai"

d = str(imagedir) + str(datetime.date.today())
os.mkdir(d)
os.chdir(d)

url = "http://api.search.yahoo.co.jp/ImageSearchService/V1/imageSearch?"

num = 1

while True:
param = []
for k, v in req.items():
j = str(k) + "=" + quote(str(v))
param.append(j)

query = url + "&".join(param)

getxml = urlopen(query)

e = ElementTree.parse(getxml)

for elem in e.getiterator():
if elem.tag.endswith("}ClickUrl"):
f = md5.new(elem.text)
urllib.urlretrieve(elem.text, f.hexdigest()+".jpg")
print str(num) + ":画像を保存中->" + elem.text
num = num + 1

req["start"] = req["start"] + req["results"]

print "ちょい待ち"
time.sleep(10)

if req["start"] == 1051:
print "もうおなかいっぱい"
break