1 포켓몬스터 공식 홈페이지에서 이미지 데이터 수집하기
- 바탕화면에 포켓몬도감이라는 폴더를 만들고
- 이미지 데이터를 다운로드 받아서 폴더 안에 하나씩 저장하기
from selenium import webdriver as wb
# 웹 브라우저를 통제하기 위한 라이브러리
from selenium.webdriver.common.by import By
# html 문서에서 태그와 선택자의 위치를 찾기 위한 라이브러리
from selenium.webdriver.common.keys import Keys
# 웹에게 값을 입력하기 위한 라이브러리
from bs4 import BeautifulSoup as bs
# 컴퓨터가 이해하기 쉬운 객체로 변경해주는 라이브러리
import time
# 코드 중간에 쉬는 시간을 부여해주는 라이브러리
import os
# 파일이나 폴더를 생성해주는 라이브러리(파일 시스템 라이브러리)
from urllib.request import urlretrieve
# 이미지 경로를 파일로 변환시켜주는 라이브러리
# 바탕화면에 '포켓몬도감'이라는 폴더 생성하기 => os 사용
# 이스케이프 코드이기 때문에 \는 \\ or / 로 표현해줘야함.
# => \가 줄바꿈, 탭 등의 이스케이프 기능으로 이미 사용
# if not else
if not os.path.isdir('C:\\Users\\User\\Desktop/포켓몬도감') :
os.mkdir('C:\\Users\\User\\Desktop/포켓몬도감') # 폴더를 생성하는 코드
print('폴더가 생성되었습니다.')
else :
print("이미지 폴더가 존재합니다.")
# 포켓몬스터 공식 홈페이지 정보 가져오기
driver = wb.Chrome()
driver.get('https://pokemonkorea.co.kr/pokedex')
# 객체화
soup = bs(driver.page_source, 'lxml')
poke_img = soup.select('img.img-fluid')
poke_img[0].text
# 비어있는 데이터가 출력
# .text : 여는 태그와 닫는태그 사이에 있는 contents(요소)를 가져와준다.
# img 태그는 홑태그이므로 contents가 존재하지 않는다.
# 이미지를 저장하려면?
# 이미지가 저장된 경로를 수집한다.
poke_img[0]
# 이미지태그의 src값 추출
# 속성값 인덱싱으로 접근! poke_img[0]['속성명']
poke_img[0]['src']
# 순수한 이미지 src(주소)값을 담을 리스트 제작 => 반복문을 통해 하나하나 저장
img_list = []
for img in poke_img :
img_list.append(img['src'])
- 이미지의 경로(src) 값을 활용해서 이미지파일로 변환시켜주는 라이브러리 사용
- 이미지 파일로 저장
# 이미지 파일로 저장
# urlretrieve(저장할 이미지의 주소값(src), '저장할 경로')
urlretrieve(img_list[0], 'C:\\Users\\smhrd\\Desktop/포켓몬도감/1번포켓몬.jpg')
# 반복문을 사용해서 모든 데이터 저장하기
url_list = []
for i in range(len(img_list)) :
url_list.append(urlretrieve(img_list[i], f"C:\\Users\\smhrd\\Desktop/포켓몬도감/{i+1}번포켓몬.jpg"))
화면에서 스크롤 내리는 방법
- page down
- space
- ↓
- end
# 키보드에 있는 end키를 사용해서 스크롤 내리기(자동스크롤진행)
# --> 누구에게 부탁
# 화면 전체를 담당하는 body 태그에게 부탁
btn = driver.find_element(By.TAG_NAME, 'body')
for i in range(20) :
btn.send_keys(Keys.END)
time.sleep(2)
종합
if not os.path.isdir('C:\\Users\\smhrd\\Desktop/포켓몬도감'):
os.mkdir('C:\\Users\\smhrd\\Desktop/포켓몬도감') # 폴더를 생성하는 코드
print('폴더가 생성되었습니다.')
else :
print('이미지 폴더가 존재합니다.')
driver = wb.Chrome()
driver.get('https://pokemonkorea.co.kr/pokedex')
time.sleep(2)
img_list = []
for i in range(5) :
btn = driver.find_element(By.TAG_NAME, 'body')
btn.send_keys(Keys.END)
time.sleep(1)
soup = bs(driver.page_source, 'lxml')
poke_img = soup.select('img.img-fluid')
for img in poke_img :
img_list.append(img['src'])
for i in range(len(poke_img)) :
urlretrieve(img_list[i], f'C:\\Users\\smhrd\\Desktop/포켓몬도감/{i+1}번포켓몬.jpg')
'Web > Crawling' 카테고리의 다른 글
크롤링 시험 (0) | 2023.04.13 |
---|---|
네이버 이미지 데이터 수집 (0) | 2023.04.13 |
Gmarket 상품정보 수집 (0) | 2023.04.10 |
한솥도시락 data 크롤링 (0) | 2023.04.09 |
selenium 라이브러리 (0) | 2023.04.09 |
댓글