ファッションサイトからファッション画像とラベルを取ってくる

##概要
一般人投稿サイト「[wear](http://wear.jp/)」からファッションの画像とラベルのデータを取ってくる。
足りないライブラリはエラーログを見てpipでinstallすればよい。

##注意
wearからとってきた画像の著作権は投稿ユーザーおよびwearの保有物なので使用する場合は注意が必要だ。
また、クローリングをする場合は待ち時間を持たせアクセス先のサイトに負担を掛けないよう心掛けること。

##内容
[おすすめコーディネート](http://wear.jp/coordinate/)から画像を持ってきてリンク先のhttp://wear.jp/yuumi557188/11259208/ などのサイトから「トップス (ブラック系)」などのラベルを取ってくる。

```py:clo.py
import time
import sys 
import requests
from bs4 import BeautifulSoup 
import re
import os
import shutil

start = time.time()
url = 'http://wear.jp/coordinate/'
res = requests.get(url)
soup = BeautifulSoup(res.content,'lxml')
i = 0
b = 0
di = 1
db = 6
g = 0

def labels(url):
    fa = "http://wear.jp"+url
    res = requests.get(fa)
    soup = BeautifulSoup(res.content,'html.parser')
    global g
    with open('labels.txt', 'a+') as f:
        f.write("%d\n"%g)
    g+=1
    for a in soup.find_all("a",href=re.compile("/category/")):
        try:
            h1_text = a.string 
            if(h1_text!="カテゴリ一覧"):
                if(not '×' in h1_text):
                    if(not 'その他' in h1_text):
                        print(h1_text)
                        with open('labels.txt', 'a+') as f:
                            f.write(h1_text+"\n")
        except Exception as e:
            print(e)
        
def label_get():
    global db,di
    for a_tag in soup.find_all("a",attrs={"class": "over"}):
        try:
            if(db == 186):
                break
            if(di == db):
                href_str = a_tag.get("href")
                print(href_str)
                labels(href_str)
                db+=4
                #print(b)
        except Exception as e:
            print(e)
        finally:
            di+=1
    db = 6
    di = 1

def download_img(url, file_name):
    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(file_name, 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)
            
def download():
    global b,i
    for a_tag in soup.find_all("img"):
        try:
            href_str = a_tag.get("data-original")
            if b%2 !=0 :
                download_img(href_str, '%d.jpg' %i)
                print(href_str)
                i+=1
            b+=1
            #resources.append(href_str)
        except Exception as e:
            print(e)
        finally:
            time.sleep(1)
    b = 0

try:
    for y in range(1,223):
        if y != 1: 
            url = 'http://wear.jp/coordinate/?pageno=%d'%y
            res = requests.get(url)
            soup = BeautifulSoup(res.content,'html.parser')
            while(True):
                if soup.find("img" ,attrs={"src": "/common/img/blank.gif"}):
                    print(y)
                    download()
                    label_get()
                    elapsed_time = time.time() - start
                    print("time:{0}".format(elapsed_time))
                    break
                else:
                    print("error")
                    url = 'http://wear.jp/coordinate/?pageno=%d'%y
                    res = requests.get(url)
                    soup = BeautifulSoup(res.content,'html.parser')
        else:
            print(y)
            download()
            label_get()
            elapsed_time = time.time() - start
            print("time:{0}".format(elapsed_time))
except Exception as e:
            print(e)
```

##結果
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/187924/7addbda3-c1f2-b3df-e081-b80c98bd957d.png)
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/187924/9d94e2ef-87f5-165e-d06e-01e9abc6fbe4.png)


画像とその番号に準じたlabels.txtが上記の通り作られた。