본문 바로가기
코드리뷰/chatGPT(Python)코드

웹 크롤링 실전 - 쿠팡 크롤링 안되면 이것만 넣어주면 됩니다.

by 디마드 2024. 3. 26.

쿠팡 파트너스를 통한 제휴 수익을 가장 크게 기대할 수 있는 곳이 바로 쿠팡이다.

얼마나 많은 봇들이 유용한 데이터를 수집하려고 설쳐 되겠는가!  단순 크롤링 코드로는 쿠팡 사이트 접속이 안 될뿐더러 자칫 잘못하면 차단이 될 수도 있다. 주의할 점을 알아보고 가장 기본적인 크롤링을 통한 쿠팡 접속을 해보자. 

 

1. robots.txt 확인

https://www.coupang.com/robots.txt

이 페이지는  외부에서 쿠팡 접속 시 허용하는 것과 아닌 것을 알려준다. 구글과 네이버 외에 다른 aget를 통한 접속은 허용하지 않는다. 다만 강제성은 없고 information이다. 사이트에 영향을 준다면 이 기준에 맞춰 문제를 일으키는 봇이나 프로그램을 차단할 수 있다는 경고이기도 하다. 

원칙적으로는 금지하고 있지만, 실습이나 참고용으로 하려면 vpn이나 핫스팟으로 가변 ip주소를 이용하는 방안이 떠오른다. 

## Google
User-agent: Googlebot
Allow: /vp/products/
Allow: /np/categories/

## Google Mobile
User-agent: Googlebot-Mobile
Allow: /vp/products/
Allow: /np/categories/

## Google Image
User-agent: Googlebot-image
Allow: /vp/products/
Allow: /np/categories/

## Naver
User-agent: NaverBot
Allow: /vp/products/
Allow: /np/categories/

## Naver
User-agent: Yeti
Allow: /vp/products/
Allow: /np/categories/

## disallow all other bots
User-agent: *
Disallow: /

 

2. 쿠파 크롤링 소스코드 

from bs4 import BeautifulSoup
import requests
keyword = input("KEYWORD : ")

BeautifulSoup과 requests 모듈로 쿠팡에 접속한다. 헤더정보는 꼭 설정한다. 없으면 100% 막힌다. 

headers = {    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,  like Gecko) Chrome/123.0.0.0 Safari/537.36'
    }
res = requests.get(url, headers=headers, timeout=5)

자! 헤더도 입히고 타임아웃도 설정해 쿠팡에 접속한다.  에러가 발생했다. 얼마전까지 문제없이 되던 코드인데 쿠팡 측에서 접속 조건을 강화한 것 같다. 

헤더정보를 좀 더 설정을 해줘야 해결이 된다. 쿠팡에서 개발자 모드를 열고 "네트워크 - 전체-search...- 헤더"에서 Accept-Language" 속성값을 가져와 헤더에 추가해 준다. 

headers = {    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,  like Gecko) Chrome/123.0.0.0 Safari/537.36',
    'Accept-Language' : 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7'    
    }

 

다시 실행하면 정상 접속이 된다. 하지만 언제 또 막힐지 모른다. 그럴때마다 헤더 정보를 추가해 테스트해 보는 수밖에 달리 해결책은 없다. 

[쿠팡 정상 접속 결과]

반응형

댓글