co-code 님의 블로그
co-code
« 2026/08 »
| 일 |
월 |
화 |
수 |
목 |
금 |
토 |
| |
|
|
|
|
|
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 |
|
|
|
|
|
관리 메뉴
co-code 님의 블로그
웹 크롤링 본문
python
웹 크롤링
co-code
2026. 4. 23. 10:58
- 사용하는 라이브러리
- requests
- 웹 서버에 요청을 보내고 응답을 받는 기능
- 응답 데이터는 bytes나 string형
- bs4
- BeautifulSoup class 이용
- html로 이루어진 문자 데이터를 parsing 작업을 통해서 데이터의 타입을 변경하여 내부의 데이터에 쉽게 접근하여 추출하기 위한 기능
- "<html><body><p>Text</p></body></html>"태그를 기준으로 데이터에 접근할 수 있는 함수들이 존재
- 태그를 기준으로 검색하는 방법
- soup.태그명
- 해당 html문서 안에서 해당 태그중 첫번쩨 태그를 되돌려줌
- 문자열 함수에서 find()함수와 비슷
- soup.태그명.string
- 첫번째 태그에서 콘텐츠(태그 안의 데이터)를 되돌려줌
- ex) `<p>.Test</p> --> 'Test'
- soup.태그명[속성명]
- 첫번째 태그에서 특정 속성의 값을 되돌려줌
- ex) `<a href = 'https://www.naver.com'>네이버</a>` --> `https://www.naver.com`
- 웹의 기본 구조를 파악하고 사용하면 조금 더 쉽게 접근가능
- 내장함수
- find()
- html문서 안에서 특정 태그의 첫번째 정보를 출력
- find(속성명=속성값)
- 태그들 중 특정 속성에 특정한 값을 가진 첫번째 정보를 출력
- 함수의 결과값의 타입은 TAG데이터 타입으로 되돌려줌
- find_all()
- html문서 안에서 특정 태그의 모든 정보를 출력
- limit매개변수
- 함수의 결과값의 타입은 ResultSet 타입으로 되돌려줌
- find(), find_all()함수는 Tag타입에서는 사용 가능 but ResultSet에서는 사용 불가능
- ResultSet타입은 Tag데이터들이 모여있는 리스트의 형태와 흡사
-
- selenium
- 웹 어플리케이션을 테스트하기 위한 라이브러리
- 웹 브라우저(chrome,...)를 python code를 이용하여 제어
- 함수를 이용해서 특정 버튼을 클릭
- 특정 위치에 데이터를 입력
- 구글 chrome이 구버전인 경우 별도의 소프트웨어 설치 필요
- 내장함수
- find_element()
- 특정 조건에 맞는 태그 중 첫번째 태그를 선택
- bs에서 find()와 흡사한 기능
- find_elements()
- 특정 조건에 맞는 태그 모두를 추출
- bs에서 find_all()과 흠사하는 기능
- tag들이 모인 list형태로 간주
- 데이터를 가져오는 방법(합법 / 위법 사이)
- 상업적인 용도가 아닌 수업정도에서의 내용은 큰 지장 X
- 사이트들마다 크롤링이 가능한 주소들은 지정되어 있음
- 크롤링 가능한 사이트 확인방법 : 사이트 주소/robot.txt