Python

[Python] icrawler로 간단하게 크롤링하기

체봄 2021. 1. 3. 18:52

 

icrawler.readthedocs.io/en/latest/builtin.html#search-engine-crawlers 의 코드를 따라서 매우 간단하게 크롤링을 할 수 있다.

 

!pip install icrawler
from icrawler.builtin import BaiduImageCrawler, BingImageCrawler, GoogleImageCrawler

# Google에서 크롤링
google_crawler = GoogleImageCrawler(
    feeder_threads=1,
    parser_threads=1,
    downloader_threads=4,
    storage={'root_dir': '/content/drive/MyDrive/Crawling'})
filters = dict(
    size='large',
    color='orange',
    license='commercial,modify',
    date=((2017, 1, 1), (2017, 11, 30)))
google_crawler.crawl(keyword='clothing', filters=filters, offset=0, max_num=1000,
                     min_size=(200,200), max_size=None, file_idx_offset=0)

# bing에서 크롤링
bing_crawler = BingImageCrawler(downloader_threads=4,
                                storage={'root_dir': '/content/drive/MyDrive/Crawling'})
bing_crawler.crawl(keyword='clothing', filters=None, offset=0, max_num=1000)

# baidu에서 크롤링
baidu_crawler = BaiduImageCrawler(storage={'root_dir': '/content/drive/MyDrive/Crawling'})
baidu_crawler.crawl(keyword='clothing', offset=0, max_num=1000,
                    min_size=(200,200), max_size=None)

'root_dir'에 크롤링한 이미지들을 저장할 경로를 써넣는다.

keyword에 크롤링할 키워드를 입력한다. (한글로 입력하면 크롤링이 잘 안되는 듯 하다)

max_num에는 크롤링할 이미지의 수를 쓴다. (이유는 정확히 모르겠지만 max_num에 써준 수보다 훨씬 적은 수가 크롤링되기 때문에 수를 크게 쓰는게 좋을 것 같다)

Google, bing, baidu 경우에서의 코드를 모두 각각 수정해줘야 한다.

 

 

크롤링 끝!

반응형