반응형
파이썬으로 이미지 크롤링하기 (requests, selenium)
웹사이트
펙셀 (pexel)에 등록된 이미지를 자동으로 다운로드하는 코드를 작성합니다.
라이브러리
1
2
|
import requests
from selenium import webdriver
|
cs |
변수 설정
1
2
3
|
max_count = 50
keyword = 'korea'
url = f"https://www.pexels.com/ko-kr/search/{keyword}/"
|
cs |
max_count = 다운로드할 이미지의 최대 개수
keyword = 다운로드하고 싶은 이미지의 검색어, 키워드
브라우저 설정
1
2
3
|
browser = webdriver.Chrome()
browser.maximize_window()
brower.get(url)
|
cs |
이미지 attributes
1
2
|
photo_items = browser.find_elements_by_class_name('photo-item__img')
img_urls = [x.get_attribute('data-big-src') for x in photo_items]
|
cs |
반복문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
index = 1
for img_url in img_urls:
browser.get(img_url)
res = requests.get(img_url)
if res.ok:
file_name = f"{keyword}_{index}.jpeg"
with open(file_name, 'wb') as f:
f.write(res.content)
print(f"({index}) {file_name}") # (2) korea_2.jpeg
index = index + 1
if index > max_count:
break;
|
cs |
max_count 다운로드할 이미지 최대 개수만큼 반복문을 반복 실행합니다.
그리고 이미지 명은 {keyword}_{index}.jpeg으로 저장합니다. 예를 들어, korea_2.jpeg 이런 식으로 저장하게 됩니다.
Full Code
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
|
import requests
from selenium import webdriver
max_count = 20
keyword = 'wallpaper'
url = f"https://www.pexels.com/ko-kr/search/{keyword}/"
browser = webdriver.Chrome()
browser.maximize_window()
brower.get(url)
photo_items = browser.find_elements_by_class_name('photo-item__img')
img_urls = [x.get_attribute('data-big-src') for x in photo_items]
index = 1
for img_url in img_urls:
browser.get(img_url)
res = requests.get(img_url)
if res.ok:
file_name = f"{keyword}_{index}.jpeg"
with open(file_name, 'wb') as f:
f.write(res.content)
print(f"({index}) {file_name}") # (2) korea_2.jpeg
index = index + 1
if index > max_count:
break;
browser.quit()
|
cs |
결과
keyword 변수에 wallpaper를 저장시키고 코드를 실행시켰을 때 결과!
반응형
'공부 > 파이썬 Python' 카테고리의 다른 글
에브리타임 크롤링 & 워드클라우드 하는 방법 (2) | 2022.04.05 |
---|---|
파이썬으로 자동 영상편집하기 (moviepy.editor) (5) | 2022.04.03 |
Weather API 튜토리얼 (날씨 정보 API) (0) | 2022.04.01 |
[Python] 언제 은퇴할 수 있을까를 계산 (0) | 2022.03.27 |
블록체인의 기본 원리: 투명성(Transparency) with Python (0) | 2022.03.26 |
댓글