학교 다닐 때 웹크롤링 수업을 들은 적이 있다.
그 당시에 흥미가 갔지만, 한 학기 수업이라서 그런가 더 많이 배우지 못해 아쉬웠다.
그런데 이번 기회에 웹크롤링 수업을 들을 수 있어서 좋았다.
많이 배워가야겠다.
웹크롤링
웹크롤링 방법
웹페이지의 종류 : 정적인 페이지, 동적인 페이지
request 이용 : html, json
Danamic : 동적인 페이지 – json
예) 동적 페이지: 더보기란이 있어서 그거 누르면 더 내용이 보이는 거!이건 url이 안 바뀐다. (화면 변경 o)
Static : 정적인 페이지 – html
예) 정적 페이지: 페이지수 1,2,3 등이 있고 다른 페이지 누르면 내용 바뀌면서 url까지 바뀐다. (화면 변경 x)
selenium
브라우저를 직접 열어서 데이터를 받는다.
크롤링 방법에 따른 속도
requests json(동적페이지) > requests html(정적페이지) > selenium
- selenium이 가장 빠르다.
< 동적 페이지에서 json 쓰는 법 >
F12: 검사하기에 들어가기
json을 쓰기 위해 fetch/XHR을 누른다. 깨끗하게 클리어해 준 후 더 보기를 눌러 새로 생성시키고 나서 header에 있는 url을 복사한다.
response의 status code가 200이 나오는지 확인해야 한다. 400, 500번 대는 오류이다.
<순서>
1. url
2. request(url) – 추가: header, ( post이면 params도 가능)
3. response – json, html
4. json: list, dict (dataframe) < ㅡ > html: beautifulsoup(css) -> txt
li를 얻기 위해서는 검사(f12)해서 원하는 부분 element에 li선택 후 오른쪽 마우스 클릭, copy를 누른 후 copy select 선택!
< 복사 >
얕은 복사(mutable) : 주소 값 복사
주소 값이 복사되기 때문에 복사한 값과 복사된 값이 같이 바뀐다.
예) d2 = d1ㅡ> d2의 값을 바꾸면 d1의 값도 바뀐다.
깊은 복사(immutable) : 데이터 복사 .copy()
데이터 값만 복사되기 때문에 복사한 값만 값이 바뀌고, 복사된 값은 그대로 유지된다.
예) d2 = d1.copy() ㅡ> d2의 값을 바꾸더라도 d1의 값은 바뀌지 않는다.
웹크롤링 수업은 듣고 싶은 수업이라 알차고 재밌었다!
복습하면서 까먹지 말아야겠다.
'kt aivle' 카테고리의 다른 글
kt_aivle8_머신러닝 (0) | 2023.08.31 |
---|---|
kt_aivle6_클래스 (1) | 2023.08.28 |
kt_aivle5 (0) | 2023.08.19 |
kt_aivle4 (0) | 2023.08.18 |
kt_aivle3 (0) | 2023.08.11 |