지금까징 데이터 크롤링을 위해 환경설정과 간단한 이론을 공부하였습니다.
그럼이제 데이터를 한번 불러와봐야 환경이 제대로 설치되었는지 알수 있겠죠?
오늘 학습할 라이브러리는 Beautifulsoup 입니다.
import requests 와 같이 사용합니다
그냥 아름다운 수프는 아닙니다. 이름만 그럽습니다. 이름만.....
먼저 beautifulsoup를 import를 해야하는데 이 모듈은 기본적으로 파이썬에서 제공하는 모듈이 아닙니다. 그러니 서브파티 모듈 다운법으로 다운로드 해주셔야 합니다. 서브 파티 모듈 다운 방법은 다들아시죠?
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
python 모듈
이번 시간에는 모듈을 알아봅시다.모듈이란 말을 처음 들어봤을 수도 있지만, 파이썬 코드을 한번이라도 보신적이 있으시다면 수도 없이 보았으 기능입니다.요런거 많이 보셨죠이게 바로 모듈
js-dowill.tistory.com
모듈명 : BeautifulSoup4
호출 방법 : from bs4 import BeautifulSoup
사용 방법 : soup # 이름 변경가능 = BeautifulSoup(html, "html.parser)
BeautifulSoup
- 웹 서버롤 부터 Html 소스코드를 가져온 다음에는 Html 태그 구조를 해석하기 위한 과정이 필요하다.
- HTML 소스 코드를 해석하는 것을 파싱(Parsing)이라고 부른다
find()메소드
- soup.find(태그) : 처음 나오는 태그로 찾기
- soup.find_all(태그) : 태그에 해당하는 모든 요소 찾아서 리스트로 변환함
- soup.find(태그, attrs={'class':css_selector}) : 태그에 해당하는 선택자로 찾기
실습에 앞서 저번처럼 html 형식에 파일을 생성해 주세요. (PY파일로 생성해주세요)
''' ''' 구문은 주석 처럼 구분 되기도 하지만 한 변수에 긴 문자열을 저장하는 구문으로도 사용됩니다.
오늘은 이 html로 메소드를 알아 봅시다.
(보통 임의의 사이트 주소를 가져와서 테스트를 하는데 티스토리는 수익 구조가 있기에 잘못하면 저 신고먹어요ㅠㅠ)
실습(find() 메소드를 사용해봅시다)
- 처음 나오는 ul 태그 찾기
- 모든 요소를 li태그로 찾기
- class 선택자로 찾기



select()메소드
- soup.select_one(태그요소.선택자이름) : css_selector 에 해당하는 첫번째 태그 가져옴
- soup.select(태그요소.선택자이름) : css_selector 에 해당하는 모든 태그 리스트를 가져옴
(저는 개인적으로 find보다 select를 많이 사용합니다.)
추가)
{tag}.get_text() : 해당 테그의 텍스트 가져옴
실습(select() 메소드를 사용해봅시다)
- 1개 요소 찾기 (선택자는 id, class 두가지 각각 가져오기)
- 모든 요소 찾기

이제 주의 사항을 공부해봅시다!!!!!
제가 주의사항을 마지막에 둔 것은 제가 오늘 낼 과제와 앞으로 여러분이 크롤링을 할 때 반드시 준수해야하는 사항이기때문입니다.
데이터 크롤링시 주의사항
- 특정 웹 사이트의 페이지를 쉬지 않고 크롤링하는 행위를 무한 크롤링을 하게 되면 해당 웹 사이트의 자원을 독점하게 되어 타인의 사용을 막게 되며 웹 사이트에 부하를 주게됩니다.
- 일부 웹 사이트에서는 동일한 IP로 쉬지 않고 크롤링을 할 경우 접속을 막아 버리는 경우도 있습니다.
- 하나의 페이지를 크롤링한 후 1~2 초 가량 정지하고 다시 다음 페이지를 크롤링하는 것이 좋습니다.
- 신무기사나 책, 사진 등 저작권이 있는 자료를 통해 영업용 이익을 취득하는 행위는 저작권법 위반으로 법적 제제를 받을 수 있으므로 유의해야 합니다.
저희가 사이트에 코딩을 통해서 접근 할 경우 인간이 아닌 로봇이 접근하는 것으로 판단합니다. 그렇기에 이런 로봇 접근법에는 로봇 배제 표준이 라는 것이 존재합니다.
로봇 배제 표준이란?
- 웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약, robots.txt에 기술하고 있음
- 임의의 사이트 .com이나 .co.kr 다음에 이상한 주소를 다 지우고 입력해야됩니다.
- 예)https://www.coupang.com/robots.txt
- 로봇에 의한 접근이 허용되는 경우라도 웹 서버에 무리가 갈 만큼 반복적으로 웹 페이지를 요청하는 것과 같이 서비스 안정성을 해칠 수 있는 행위를 하지 않아야합니다.
- 크롤링(또는 스크래핑)으로 취득한 자료를 임의로 배포하거나 변경하는 등의 행위는 저작권을 침해할 수 있으므로 저작권 규정을 준수해야 합니다.



오늘은 여기까지 주의사항을 꼭 숙지해주시길 바랍니다.
과제
실습1. 국립중앙박물관 관람 정보를 크롤링 해보자
- 국립중앙박물과 사이트에 접속한다.
- robots.txt를 확인한다 꼭
- 관람시간과 관람료를 크롤링한다.


실습2. 전자 신문 메인 기사 크롤링
- 전자 신문 사이트에 접속한다.
- robots.txt를 확인한다.
- 메인화면 기사를 크롤링한다
- 제목 가져오기
- 발행일 가져오기
- 본문 내용 가져오기

해답예시는 늘 똑같이 하루코딩에 올리겠습니다!!!!
오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

'데이터 가져오기' 카테고리의 다른 글
| 데이터 가상환경 설정 (0) | 2024.12.11 |
|---|---|
| 데이터 CSS (0) | 2024.12.10 |
| [데이터] 데이터 수집과 웹 기초 (2) (3) | 2024.12.09 |
| [데이터] 데이터 수집과 웹 기초 (1) (1) | 2024.12.07 |