파이썬 뷰리풀숲 bs4로 네이버 뉴스를 크롤링하려는 사람들이 있을 것이다.
필자도 주식 단기매매를 위해서 네이버 뉴스 크롤링해서 관심 키워드가 포함된 기사만 뽑아서 알려주도록 하는 코드를 짜서 사용하고 있다.
처음 네이버 뉴스를 크롤링하는 코드를 잘 짰다고 생각하고 돌렸는데 시작하자마자 에러가 뜨는 것이다.
네이버 뉴스 크롤링 에러
requests.exceptions.ConnectionError:
('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
처음엔 무슨 말인지 몰라서 코드를 다시 살펴보고 이것저것 조치를 해봤지만 안되서 구글링을 시도했다.
바로 정답을 찾지 못했지만 조금 더 찾아보니 해결 방법을 발견하게 되었다.
header 추가
네이버는 어떤 브라우저로 접속했는지 확인을 하고 만약 정보가 없다면 응답을 해주지 않고 거부해버린다.
그래서 bs4에서 그냥 requests.get을 보낼 것이 아니라 브라우저 정보를 입력해줘야 한다.
브라우저 정보를 입력한다고 해서 어려운 게 아니다.
아주 간단하다.
from bs4 import BeautifulSoup
import requests
# 네이버 전체 뉴스 url
BASE_URL = "https://news.naver.com/main/list.naver?mode=LSD&mid=sec&listType=title&sid1=001"
# get할 때 headers 인자를 이렇게 넣어주면 된다.
requests.get(BASE_URL, headers={'User-Agent':'Mozilla/5.0'})
headers에 운영체제, 브라우저 정보 등 다양한 정보를 넣어줄 수 있지만 그럴 필요는 없고 그냥 브라우저 정보 정도만 저렇게 넣어주면 된다.
이렇게 하면 에러 없이 크롤링 할 수 있을 것이다.
※ 함께 보면 좋은 글
'IT > 코딩' 카테고리의 다른 글
쿠팡파트너스 트위터 자동화 파이썬 코드 (0) | 2022.05.30 |
---|---|
파이썬 게시판 새 글 확인 코드 (2) | 2021.12.30 |
C# 코루틴, 전처리 (0) | 2021.12.19 |
C# 무명 메소드, 람다식, Action, Func, 예외 처리 (0) | 2021.12.18 |
C# 인터페이스, 형식 매개 변수 T (0) | 2021.12.17 |