| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 데이터 시각화
- 랭그래프
- python 기초
- UMAP
- CLIP
- 객체지향
- ASR
- RDBMS
- SQL
- 알고리즘
- 기초
- LangGraph
- 딥러닝
- CNN
- 머신러닝
- 트랜스포머
- 캐글
- 에이전트
- 소프트웨어 개발
- 생성형 인공지능
- TTS
- python기초
- 자연어처리
- dementional reduction
- Python
- RNN
- 정보처리기사
- 힙정렬
- Transformer
- 데이터엔지니어
Archives
- Today
- Total
수달이네 기술 블로그
6. 셀레니움을 이용한 크롤링 2: 이미지 본문
이미지 크롤링
from selenium import webdriver
driver = webdriver.Chrome()
url = '<https://pixabay.com/ko/images/search/강아지/>'
driver.get(url)
이미지 사이트에 들어감(크롬으로 url을 검색해서 들어가줌)
from selenium.webdriver.support.ui import WebDriverWait
image_xpath = '/html/body/div[1]/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/a/img' #이미지 자체의 xpath
wait = WebDriverWait(driver,10) #최대 10초까지 기다려
image_element = wait.until(EC.presence_of_element_located((By.XPATH, image_xpath))) #여기서 이미지가 나타나면 넘어가, 아니면 10초까지 기다려
- 이미지가 존재하는 사이트의 이미지를 불러오고,
- 이미지가 불러올때 까지 기다리기 위해 WebDriverWait을 이용한다.(WebDriverWait(드라이버, 초)
- 이제 무얼 기다리는지 에 대한 내용을 작성(이미지가 나타나면 넘어가, 아니면 10초까지 기다려)
image_url = image_element.get_attribute('src')
image_url
# '<https://cdn.pixabay.com/photo/2020/07/17/06/41/puppy-5413165_640.jpg>'
url내의 속성에서 src라는 링크를 얻어온다.
Request Header
사용자가 사이트에 요청하는 정보들이 들어있음

- 즉, 내 정보들이 들어있음.
- 나는 어떤 방식(get, post)
- 어떤 프로토콜을 사용하고 있고,
- 난 어떤 브라우저 엔진을 사용하고 있고,
- 난 크롬을 사용하고 있어 등등..
- 크롤링 프로그램이 요청하면 user-Agent가 없다. 그렇기 때문에 userAgent정보를 같이 요청해줘야한다.(차단 무시)

- response header: 내가 어떤 정보를 가지고 있으니 브라우저에게 어떻게 해줘라고 하는 것
- 즉, 응답 정보들이 들어있음.
image_byte = Request(image_url, headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'})
#headers의 User-Agent에 해당 값을 넣어줌
- 위처럼 Request header의 user-agent를 수정해주면 이미지를 바이트파일로 가져올 수 있게 된다.
with open('dog2.jpg','wb') as f: #wb: write binary 이진 파일을 써준다.
f.write(urlopen(image_byte).read())
print('다운로드 완료!')
이제 해당 바이트 파일을 jpg에 써주면,
이미지를 다운로드 할 수 있게 된다,
크롤링 윤리
https://pixabay.com/robots.txt
대부분의 사이트에선 robots.txt를 입력하면, 허용하는 부분,허용하지 않는 부분등 을 표기해둔다.
- 크롤링의 윤리적인 문제는 알아서 지키자.
- 대부분의 사용자는 불허한다고 써놓는다. 저작권, 크롤링 윤리등 문제.
여기서,
User-agent: *
Allow: /api/docs/
Allow: /static/*.*
이런식으로 크롤링이 허용된 부분이 있고,.
Disallow: *?*orientation=*
Disallow: *?*manual_search=*
Disallow: *?*min_width=*
Disallow: *?*min_height=*
Disallow: *?*date=*
허용되지 않은 부분이 있다. 사실 거의 대부분 허용이 안된다.
'AI공부 > 머신러닝' 카테고리의 다른 글
| 8. 머신러닝 기초 (1) | 2025.12.10 |
|---|---|
| 7.셀레니움을 이용한 크롤링3: 데이터프레임화(야놀자 리뷰 크롤링) (1) | 2025.12.01 |
| 강화학습 기본 개념 (0) | 2025.12.01 |
| 5. selenium을 이용한 크롤링 (1) | 2025.11.26 |
| 4. 공공 데이터셋 가져오기 (0) | 2025.11.26 |