문제상황
크롤링을 하려 requests.get(url)을 하다가 아래 에러를 만나본적이 있을것이다.
('Connection aborted.', ConnectionResetError(10054, '현재 연결은 원격 호스트에 의해 강제로 끊겼습니다', None, 10054, None))
이 에러는 요청한 서버에서 나를 자동화봇으로 보고 연결을 끊는 상황이다.
해결방법
이때 bot이 아닌 정상적인 요청임을 증명해야한다.
크롤링하려는 페이지에서 개발자도구 > Network 에 들어가서 새로고침을 해보자.
이처럼 제일 처음에 들어온 패킷이 있을것이다.
해당 패킷을 눌러서 살펴보면 Request Headers 부분에 user-agent 속성에 Mozilla 어쩌구하는 값이 있을것이다.
이 값은 브라우저 정보를 나타내는 것인데 오른쪽 마우스해서 copy value를 하기 바란다.
headers = {"User-Agent" : "copy해온 값"}
res = requests.get(url,headers=headers)
headers를 만들고 url에 headers를 추가하여 요청하면 끝이다.
심화과정
이 부분에 관하여 최근에 새로운 포스팅을 했습니다.
UserAgent에 대해 더 이해하고 Python 라이브러리를 활용하여 해당 문제를 해결해보고 싶으신 분은 아래의 글을 참고해주세요 :)
728x90
'프로그래밍 > Crawling' 카테고리의 다른 글
[Selenium] 버튼 클릭해서 나오는 값 동적 크롤링 하는 방법 (0) | 2022.08.16 |
---|---|
[Selenium] 네이버 동적 로그인 하기 - 셀레니움 사용법 (0) | 2022.08.16 |
[WebCrawling] 네이버 뉴스 섹션별 토픽 기사 크롤링 2022.ver (0) | 2022.08.03 |
[WebCrawling] 네이버 뉴스 섹션 토픽 크롤링 2022.ver (0) | 2022.08.03 |
[WebCrawling] 네이버 뉴스 메뉴 크롤링 2022.ver (0) | 2022.08.03 |