일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 조건부확률
- 확률밀도함수
- Anaconda
- 수치형자료
- 사조사
- 범주형자료
- 모평균
- 표본평균
- 통계학입문
- 이산형
- 이산확률질량함수
- 이변량자료
- 기본행연산
- 모수
- 표본공간
- 베르누이분포
- 이항분포
- jupyter notebook
- 피어슨상관계수
- 수학적확률
- 연속확률변수
- 기댓값과 분산
- 균일분포
- 첨가행렬
- pmf
- 통계학개론
- 행사다리꼴
- 누적분포함수
- 절삭평균
- 포아송분포
- Today
- Total
Syeonny의 블로그
웹 크롤링 (2) 본문
240920
동적 페이지
동적 : 말 그대로 웹 페이지 내에서 무엇을 클릭하거나, 반응해도 url이 바뀌지 않고 페이지 내에서 결과가 변하는 것이다.
"반응형"
웹크롤링 데이터 수집 절차
1. dev tool (f12)를 이용하여 웹 데이터 url 받기
2. url 이용하여 request --> response json /html 형식으로 데이터 받아오기
>> response 200번대 == success
3. 데이터 파싱: 웹 서버에서 받은 데이터를 원하는 형식으로 형태를 변경해서 사용 (이후 전처리 과정)
>> json 형식을 list, dict --> df
이후 데이터 시각화 / 데이터 상관관계 분석 (데이터 스케일링)
* data scaling : feature 특성 맞춰주기
- 표준화 standard : 평균 0 분산 1로 맞춰주기 (분포가 다양)
- 정규화 normalization / minmax scaler: 0~1 사이 (이상치 제거 필수/ minmax--> 회귀적합)
- 로버스트: 중앙값 0 iqr = 1 (이상치 영향 ↓)
큰 이상치를 가지면 표준화 / 반대이면 정규화
url = 'https://m.stock.naver.com/front-api/marketIndex/prices?category=metals&reutersCode=CMDT_GD&page=1'
response = requests.get(url)
data = response.json()
data = data['result']
df = pd.DataFrame(data)
data[['localTradedAt','closePrice','fluctuations']]
header 가 필요한 경우
위와 동일한 프로세스로 진행을 했지만, 가령 response 가 400번대인 경우가 존재한다.
서버에서 요청을 불완전하거나 의심스러운 것으로 처리하여 요청이 거부된 것이다.
이러한 경우엔 필수로 header 를 지정해주어야 한다.
header = { 'user.agent' : ' ' , 'referer' : ' ' , 'cookie': ' '}
ex daum 의 exchange
rest api
- Representational State Transfer
api key 를 발급받아 내가 원하는 데이터를 얻는 방법이다.
사용하는 api에 따라 필요한 params, headers 를 지정해줘야 한다.
ex naver, open api, kakao
정적 페이지
정적 페이지는 html로 데이터를 가져오기에 request response 이후에 beautifulsoup 패키지, css-selector 를 이용하여 원하는 data 를 가져온다.
html
정적 페이지는 웹 크롤링 시 html 로 가져오기 때문에
html 에 대한 기본적인 이해가 필요하다.
- p : 글자 작성 <p> </p>
- id: 스타일 고유값 id ='' # 사용
- class: class 지정 class ='' . 사용
- div: 레이아웃 지정
- h1~6: 제목 지정 <h1> </h1>
- span: 글자 중 특별하게 뭘 적용하고 싶을 때 사용 (css style 지정 시)
- a: 페이지 이동 하이퍼링크
- img: 이미지 추가
- ul li: 리스트 추가
class selector
글자, 문단에 스타일을 지정하고 싶을 때
class , id 를 사용한다.
- not selector - :not(셀렉터) 괄호 안의 셀렉터를 제외하고 모든 요소에 스타일 적용
- first-child selector - :first-child() 부모 요소의 첫 번째 자식 요소에만 스타일을 적용
- last-child selector - :last-child()
- nth-child Selector - :nth-child() 부모 요소에서 n번째 특정 순서에 있는 자식 요소를 선택
'파이썬' 카테고리의 다른 글
웹 크롤링 (3) (0) | 2024.09.23 |
---|---|
파이썬 기초와 웹 크롤링 기초 (0) | 2024.09.19 |
이변량분석 범주형 변수 (0) | 2024.09.13 |
범주형 변수와 수치형 변수 분석 (0) | 2024.09.13 |
수치형변수 이변량분석 (0) | 2024.09.12 |