지금까지 크롤링을 찾아보며 두가지 방법을 찾아냈다.
1. 이 코드는 이름을 수정하는것까지 되지만 html을 chrome브라우저를 통해 가져왔을때와
python을 통해 가져왔을때 차이가 있어서 이미지를 20개 밖에 만들지 못한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import requests import urllib.request from scrapy.selector import Selector count = 2000 inputSearch = "증명사진" base_url = "https://www.google.co.kr/search?biw=1597&bih=925&" \ "tbm=isch&sa=1&btnG=%EA%B2%80%EC%83%89&q=" + inputSearch def img_url_from_page(url): html = requests.get(url).text # r = requests.get(url); html = r.text sel = Selector(text=html) img_names = sel.css('td a img::attr(src)').extract() img_names = [img_name for img_name in img_names] return img_names def img_from_url(image_names): global count count += 1 name = count full_name = "D:\images\img\profile_" + str(name) + ".jpg" urllib.request.urlretrieve(image_names, full_name) for i in img_url_from_page(base_url): img_from_url(i) | cs |
2. 이 방법은 수백개의 이미지를 만들어내지만 아직까지 원하는 이름으로 저장하는법을 알아내지 못했다.
따라서 이미지를 저장 후 이름을 변경하는 파이썬코드를 만들었다.
1 2 3 4 5 6 7 | from icrawler.builtin import GoogleImageCrawler google_crawler = GoogleImageCrawler(parser_threads=2, downloader_threads=4, storage={'root_dir': 'your_image_dir'}) google_crawler.crawl(keyword='sunny', max_num=1000, date_min=None, date_max=None, min_size=(200,200), max_size=None) | cs |
1 2 3 4 5 6 7 8 9 10 11 | import os import glob path = "D:\\change_name\\image\\*.jpg" fpath = "D:\\change_name\\image\\" count = 2155 for path in glob.glob(path): img_name = "profile_" + str(count) + ".jpg" os.rename(path, fpath+img_name) count += 1 | cs |