반응형
웹 크롤링을 통해 자료를 수집할 때 가장 큰 문제점은 허가를 받지 않고 데이터를 수집한다는 거다. 언제 내 크롤러가 차단을 당해도 할 말이 없다. 웹 사이트 개편이라도 하면 크롤링 소스를 모두 수정해야 하는 상황에 봉착하게 된다.
그렇다면 공식적인 방법은 뭐가 있을까? 바로 API를 이용하는거다.
네이버를 예로 들면 로그인부터 뉴스, 쇼핑, 카페 데이터 검색을 위한 다양한 API를 제공한다. 사용한도는 있지만 꽤 넉넉하게 무료제공한다. 이 API를 이용해 뉴스기사를 수집해 보자.
1. 네이버 API 신청
네이버 데이터랩에 접속해 오픈 api를 신청한다.
- Client ID와 Client Secret 를 발급해 준다. 네이버 API를 이용하는 키라고 보면 된다.
https://developers.naver.com/products/service-api/datalab/datalab.md
데이터랩 - SERVICE-API
데이터랩 통합검색어 트렌드 통합검색어 트렌드는 네이버 통합검색에서 발생하는 검색어를 연령별, 성별, 기기별(PC, 모바일)로 세분화해서 조회할 수 있는 API입니다. 분석하고 싶은 주제군을
developers.naver.com
2. 네이버 헤드라인 뉴스 가져오기
파이썬 코드로 작성한다. API 사용법은 네이버 데이터랩의 다큐멘트를 참고하자.
import requests
client_id = "HhqddhnYN8aaaaaaaaaa" # 네이버 개발자 센터에서 발급
client_secret = "h_Bxbbbbbb" # 네이버 개발자 센터에서 발급
url = "https://openapi.naver.com/v1/search/news.json"
headers = {
"X-Naver-Client-Id": client_id,
"X-Naver-Client-Secret": client_secret,
}
params = {"query": "헤드라인", "display": 10, "sort": "date"}
response = requests.get(url, headers=headers, params=params)
news_data = response.json()
for no,item in enumerate(news_data['items'],1):
print(f"{str(no)} : {item['title']} {item['link']} ")
[출력 결과]
웹크롤링과 API사용 장단점을 비교하면 다음과 같다.
항목 | 웹 크롤링 | API 사용 |
데이터 접근성 | 웹 페이지에 표시되는 모든 데이터 가능 | API가 제공하는 데이터로 제한 |
안정성 | 웹 페이지 구조 변경 시 작동 실패 가능성 있음 | 안정적이며 유지보수가 적음 |
법적 문제 | 법적 이슈 가능성 있음 | 공식 제공이므로 안전 |
속도와 효율성 | HTML 파싱으로 추가 처리 필요 | 가공된 데이터로 효율적 |
사용 제약 | 요청 빈도 조절 필요 | 호출 횟수 및 사용량 제한 존재 |
설정 난이도 | HTML 분석 및 유지보수 필요 | 인증 설정 필요 |
- 웹 크롤링:
- API가 없는 서비스에서 데이터를 수집하거나, API에서 제공하지 않는 세부 데이터를 크롤링해야 할 때 적합.
- 비공식적으로 데이터를 빠르게 확보하려는 경우 유용.
- API:
- 안정성과 법적 안전성이 중요하거나, 간단한 방식으로 데이터를 수집하고 싶을 때 적합.
- 공식적인 데이터 사용을 원하는 경우 최선.
반응형
'코드리뷰 > chatGPT(Python)코드' 카테고리의 다른 글
파이썬 코드로 네이버 뉴스기사 요약하기 -DeepSeek ChatGPT Claude (0) | 2025.01.30 |
---|---|
블로그 포스팅 자동화 구글 애드센스 수익 이어질까? (0) | 2025.01.26 |
BeautifulSoup 이용해 웹 데이터 추출하기 - select, select_one, find, find_all (0) | 2025.01.12 |
댓글