AIVLE

Web Crwaling ③ - 다음 환율 데이터 수집

민주82 2023. 2. 19. 01:04

Daum Exchange

서버에서 어뷰징을 막는 경우 해결 방법


 

전 게시물과 같은 방법으로 크롤링을 진행하지만...

접근이 불가능한 경우에는 서버 개발자의 코드를 알 수 없으니 user-agent와 referer을 건드려 접근한다

 

⊙ Referer란.....?

: HTTP 리퍼러는 웹 브라우저로 월드 와이드 웹을 서핑할 때, 하이퍼링크를 통해서 각각의 사이트로 방문시 남는 흔적 !!

 

예를 들어 A라는 웹 페이지에 B 사이트로 이동하는 하이퍼링크가 존재한다고 하자. 이때 웹 사이트 이용자가 이 하이퍼링크를 클릭하게 되면 웹 브라우저에서 B 사이트로 참조 주소(리퍼러)를 전송하게 된다. B 사이트의 관리자는 이 전송된 리퍼러를 보고 방문객이 A 사이트를 통해 자신의 사이트에 방문한 사실을 알 수 있다.

 

→ 웹 사이트의 서버 관리자가 사이트 방문객이 어떤 경로로 자신의 사이트에 방문했는지 알아볼 때 유용하게 사용

 

 

 

user-agent 지정해주는 이유도 아래 링크 들어가보면 잘 정리 해두셨다...!

https://homubee.tistory.com/19

 

[BeautifulSoup] #2 파이썬 웹 크롤링 네이버 오류 해결 방법

오늘은 파이썬으로 네이버 웹 크롤링 중 발생하는 오류 해결 방법에 대해 알아보겠습니다. BeautifulSoup를 활용한 강의의 연장선이지만, 파이썬 선에서 발생하는 문제입니다. 일반적으로 웹 크롤

homubee.tistory.com

 

 

import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import requests

# 1. 웹서비스 분석: URL
url ='https://finance.daum.net/api/exchanges/summaries'
headers = {
    'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
    'referer' : 'https://finance.daum.net/exchanges',  #서버 개발자의 코드를 알 수 없으니 직접해봐야함
}

# 2. request(URL) > response : json(str)
response = requests.get(url, headers = headers)
response

# 3. json(str) > list, dict > DataFrame
df = pd.DataFrame(response.json()['data'])
df.head(2)

실행 결과

 

 

 

마무리는 헷갈리는 개념 !