일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클래스 #아이디
- 공부내용정리
- C언어 #문자열변환 #정수형변환
- 머신러닝 #학습내용정리
- GIT
- 스프링 입문
- 김영한 #SOLID #객체지향
- 옵셔널태그
- 크롬브라우저
- 개발공부
- 스프링부트
- Numpy #TIL #넘파이 기초
- 캐글
- home credit default risk
- 작업 영역
- 커밋
- MVC #디자인패턴
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- 데이터분석
- 에러포스팅
- 머신러닝 #회귀 #규제
- fastapi
- 파이썬
- 단축키정리
- 웹 크롤링
- 기술블로그
- 컬럼수정
- SafeUpdate
- 생성자 #자바 #기록남기기
- SQL
- Today
- Total
데이터 분석가 몽구리
[Python] 웹 크롤링 템플릿 본문
데이터 분석에 있어 가장 중요한 단계 중 하나는 데이터 수집
단계일 것이다.
오늘은 python 웹 크롤링을 통해 웹에서 데이터를 수집하는 코드를 작성해보도록 하겠다.
import requests
from bs4 import BeautifulSoup
res = requests.get('http://') // 접근하고자 하는 url 입력
soup = BeautifulSoup(res.content,'html.parser')
mydata = soup.find('title') // 'title' 태그를 통해 값을 가져온다
print(mydata.get_text())
위 코드는 requests 라이브러리를 통해 웹 사이트에 접근하고 BeautifulSoup를 통해 크롤링을 진행하게 된다. soup.find를 통해 태그나 속성을 통해 값에 접근할 수 있으며, 가져온 값은 mydata 변수에 담아주게 된다. mydata에 담겨진 변수를 출력할 때에는 .get_text() 를 사용하거나 .string을 통해서도 데이터를 출력할 수 있다.
data = soup.find('p', class_='cssstyle')
data = soup.find('p', 'cssstyle')
data = soup.find('p', attrs = {'align': 'center'})
data = soup.find(id='body')
태그나 속성을 통해 값을 가져오고자 할 때, 같은 태그나 속성이 있다면 원하는 값을 가져오기 힘든 경우가 발생할 것이다. 그런 경우에는 위 코드와 같이 태그와 속성을 같이 달아주는 다양한 코드를 사용해서 내가 원하는 데이터를 가져올 수 있다. 주의하실 점은 class_='cssstyle'에서 class뒤에 (언더바) 가 포함되어 있다는 것입니다. python에서는 class가 예약어이기 때문에 class 로 사용한다고 이해하시면 됩니다.
그렇다면 같은 아래 사진과 같이 여러 개의 데이터를 한번에 가져오기 위해서는 어떻게 해야할까요?
data = soup.find_all('p')
for item in data:
print(item.string)
여러 개의 데이터를 한번에 가져오기 위해서는 find_all 메서드를 사용해주시면 됩니다. find_all 메서드의 경우에는 반환 값이 리스트이기 때문에 출력할 때에는 반복문을 통해 출력을 하시면 됩니다.
크롤링을 할 때에는 기본적인 HTML 및 CSS 에 대한 내용을 알고 있다면 데이터를 어렵지 않게 수집할 수 있습니다. 기본적인 데이터 수집을 위한 크롤링 방법에 대해 학습을 진행하였습니다. 해당 코드를 외우기 보다는 필요할 때에는 검색해서 사용할 수 있는 능력을 기르는 것이 더 중요할 거 같습니다~
다음 시간에는 좀 더 크롤링의 다양한 방법에 대해 정리해보도록 하겠습니다! 감사합니다
'Python' 카테고리의 다른 글
[Pandas] 결측값을 찾는 방법 (0) | 2024.08.17 |
---|---|
[5일차] 비밀번호 생성기 만들기 (1) | 2023.05.30 |
[Numpy] ndarray의 데이터 타입 (0) | 2023.04.17 |
[Python] TypeError: 'NoneType' object is not subscriptable (0) | 2023.01.08 |
함수 (0) | 2022.12.21 |