본문 바로가기

DEEP LEARNING/Tensorflow Training

cnn 실습_나만의 이미지 데이터를 만들고 학습하기(1) - image crawling

웹페이지 분석 : url (html)

  • requests 모듈을 이용해서 html 문자열 데이터를 받아옴 : response
  • response로 받아온 문자열 html 포멧의 데이터 BeautifulSoup을 이용해서 css-selector를 사용가능한 객체로 파싱
  • 원하는 부분의 문자열 데이터를 css-selector를 이용해서 가져오기
import requests
from bs4 import BeautifulSoup
paths = []
for page in range(7):
    url = "http://browse.gmarket.co.kr/search?keyword=%eb%9d%bc%eb%a9%b4&f=c:200001210&k=32&p={}".format(page)
    response = requests.get(url)
    dom = BeautifulSoup(response.content, "html.parser")
    elements = dom.select(".box__image")
    for element in elements:
        path = element.select("a")[0].get("href")
        paths.append(path)
img_link = []
for path in paths:
    response = requests.get(path)
    dom2 = BeautifulSoup(response.content, "html.parser")
    img = dom2.select_one(".box__viewer-container > ul > li.on > a > img").get("src")
    img_link.append(img)
!mkdir data_noodle
# 이미지 다운로드
def download(subject, img_link):
    response = requests.get(img_link, stream=True)
    save_path, size = "./data_noodle/{}".format(subject), 0
    with open(save_path, "wb") as f:
        for chunk in response.iter_content(chunk_size=1024):
            if chunk:
                size += 1024
                f.write(chunk)
    return size
idx = 1
for img in img_link:
    file_path = "noodle_{}.png".format(idx) 
    size = download(file_path, img)
    idx += 1