💡Today I Learned
- 파이썬을 이용한 웹 크롤링 기술에 대한 세 번째 강의를 진행했습니다.
- request, beautifulsoup 이용한 html parsing, find 실습
1. BeautifulSoup
: html 코드를 분석해주는 파이썬의 html parser 라이브러리
: 특정 태그로 묶인 요소만 보고싶을 때
*) 다른 markup 언어(XML 등)의 parser로도 사용 가능함
2. BeautifulSoup 활용 해 특정 요소만 가져오기
3. HTML의 Locator
: 태그 이름만 가지고는 원하는 요소 특정하기 불편.. (같은 이름의 태그가 매우 많을 수 있음)
: id, class로 원하는 태그 한정짓기
4. 정적/동적 웹 사이트
: 어떻게 생성되는지에 따라 두 종류로 나눔
: 정적 - html 내용이 고정됨 (같은 주소로 요청 보내면 항상 같은 응답), html 문서가 완전하게 응답함
: 동적 - html 내용이 변함, 응답 후 html이 렌더링 될 때까지의 지연시간이 존재
5. 동적 웹사이트 동작 방식
: 웹 브라우저에서는 JavaScript라는 언어가 동작함
: 비동기 처리를 위해 필요한 데이터를 응답 이후 채움
: 동기 = 요청에 따른 응답을 기다림 (렌더링 다 하고 → 데이터 처리), html 코드 열었을 때 온전한 데이터로 로딩이 필요하지 x
: 비동기 = 요청에 따른 응답을 기다리지 않음 (렌더링 처리 & 실행되는 와중에 데이터 처리), 상황에 따라 데이터가 완전하지 않은 경우 발생
6. 스크래퍼의 문제점
: 데이터 처리 완료되지 않은 시점에서 파싱 진행 시 불완전한 응답(원하는 요소 아직 불러오지 못할 수 있음) → 임의의 시간을 지연 후 데이터 처리 끝난 정보 가져오기
: 이벤트(키보드 입력, 마우스 클릭, ..) 등을 requests로는 진행하기 어려움 → 이런 상호작용을 프로그래밍 통해 작업 → 웹 브라우저를 파이썬으로 조작하기
: selenium = 웹 브라우저를 자동화하는 라이브러리
'데브코스 > TIL' 카테고리의 다른 글
[TIL] 3주차_Day10: 파이썬 웹 크롤링(5) (1) | 2023.11.01 |
---|---|
[TIL] 3주차_Day9: 파이썬 웹 크롤링(4) (0) | 2023.11.01 |
[TIL] 3주차_Day7: 파이썬 웹 크롤링(2) (1) | 2023.10.30 |
[TIL] 3주차_Day6: 파이썬 웹 크롤링(1) (0) | 2023.10.24 |
[TIL] 2주차_Day5: 자료구조/알고리즘 풀기(5) (1) | 2023.10.20 |