검색 연관(관련)키워드 불러오기 with python (상품가공하는데 시간이 너무걸려 만듬)

2023. 2. 24. 12:42디지털장사

반응형

연관키워드를 불러오기 위해서는 일단 ajax 라는 것을 사용해야 한다고 함,

 

 

홈페이지 접속후 원래라면 새로고침을 하여야 나타나는데 실시간으로 반영하는 것이 ajax 라고 이해하였다.

 

 

잘 설명이 되어있다.

 

이런 프로그램을 만들려고 하는 이유는 너무 불편해서, 너무 오래걸려서, 가공하기 편하려고 하는 여러 이유가 있다.

 

일단 시도할것은 쿠팡을기준으로 하려고 함.

 

준비물 = (파이썬 깔기, 파이참 설치)

 

일단 요렇게 세게를 임포트

만약에 이게 없으면 설치를 해야 한다

터미널에서

pip install 내가쓰려고하는 도구 

이게 기본명령어 인데 이렇게 하면 설치 가 안되는 경우도 있다. 

그럴땐 인터넷 검색을 하면된다.

 

 

pip --version pip 버전 확인
pip list 설치된 패키지 목록 확인
python -m pip install --upgrade pip pip 업그레이드
pip install --upgrade pip 상기동일
pip install 패키지이름 패키지 설치
pip install 패키지이름==1.0 패키지 1.0버전 설치
pip uninstall 패키지이름 패키지 삭제
pip search 패키지이름 패키지 검색
pip install --upgrade 패키지이름 패키지 업그레드
python --version 파이썬 version 확인
python 실행 후 exit() 파이썬 version 확인, 32/64비트 확인

 

이제 시작

쿠팡으로가 사진과 같이 내가 가져올 키워드 주소를 찾아야 한다.

변수 = 키워드

request.get(f"사이트-----{변수 }-----")  -이런식의 형식이다.

 

 

 

크게 보면 헤더에 있는 URL 주소를 복사한다.

 

keyword = pyautogui.prompt("키워드 입력")

이건 주소에 넣을 키워드 변수

그리고 아래와 같이 f스트링을 사용하여 주소에다가 적당히 넣어줌

아까 복사한 주소는 requests.get 괄요 안에다가 넣어준다.

r_coupang = requests.get(f"https://www.coupang.com/np/search/autoComplete?callback=jQuery111105082177076737822_1677140976179&keyword={keyword}&_=1677140976186")

 

 

coupang_data = r_coupang.text

그리고 쿠팡에서 추출한 값중 텍스트값만(string) 추출한후 다시 변수에 저장한다.

 

이것을 print(coupan_data) 로 출력하면

 

jQuery111105082177076737822_1677140976179([{"keyword":"개 사료","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"대용량 개사료 20kg","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"대용량 개사료 20kg 최저가","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"개사료 10kg","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"개사료 20kg","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"개사료 15kg","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"대용량 개사료","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"탐사 개사료","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"로얄캐닌 개사료","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"},{"keyword":"대형견 대용량 개사료 20kg 최저가","requestId":"8a93ec8970f4445f93e2dfeb2d58e967","travelKeyword":"false"}])

 

위와 같이 출력이 된다.

 

 

다시 여기서 리스트 형태로 가공하는 과정이 필요하다 .

 

dic_coupang = json.loads(str_coupang)

 

요 함수를 이용해서 간단하게 바뀌었다.

 

바꾸는 이유는 앞에있는

coupang_data

이 변수는 스트링 값이고

 

변형된 값

dic_coupang 

이 변수는 리스트 형이기 때문에 포문에서 하나씩 꺼내주면 가공이 된다 

 

정리하면 스트링값은 모두 출력되기 때문에 어짜피 엑셀해서 정리해 주어야 하는데 너무 힘들더라

 

그래서 계속 간단한 방법이 없을까 하다 이방법을 발견했다.

 

이제 포문으로 추출만 해주면 된다.

 

try:
    for i in dic_coupang:
        print(i['keyword'],end =",")
        y = y + 1
    print(y)
except:
    print("쿠팡은 정말 없는것 같애요")

아까 가공한 쿠팡 상품 리스트에서 "," 을 이용하여 분리해 주었다. end = " "는 print 함수를 출력하면 끝에 기본적으로 엔터가 들어가는데 그거 넣지말고 ","요거로 대체해 주세요 라고 부탁하는 명령어?(부탁어?) 라고 한다

 

예외처리 문구를 넣은것은 값이 없으면 애러가 나더라

 

전체코드 정리:

 

import requests
import json
import pyautogui
keyword = pyautogui.prompt("키워드 입력")
r_coupang = requests.get(f"https://www.coupang.com/np/search/autoComplete?callback=jQuery111105082177076737822_1677140976179&keyword={keyword}&_=1677140976186")
coupang_data = r_coupang.text
try:
    str_coupang = coupang_data.split("jQuery111105082177076737822_1677140976179(")[1][:-1]
except:
    print("쿠팡은 없는것 같애요")
try:
    dic_coupang = json.loads(str_coupang)
except:
    print("쿠팡은 정말 없어요")
print("쿠팡 ",end = ":")
try:
    for i in dic_coupang:
        print(i['keyword'],end =",")
        y = y + 1
    print(y)
except:
    print("쿠팡은 정말 없는것 같애요")

전체 함수 인데 여기서 y 변수는 밖에 넣어주었다.

이유는 카운터 때문이다.

네이버 키워드 기준으로 총 10개가 들어갈수 있는데 10개가 넘어가면 하나씩 세어야 하기 때문에 귀찮아서 카운터를 넣어주었다.

 

실행 키워드 :개사료

 

쿠팡 :개 사료,대용량 개사료 20kg,대용량 개사료 20kg 최저가,개사료 10kg,개사료 20kg,개사료 15kg,대용량 개사료,하림 개사료,탐사 개사료,개사료 5kg,10

 

방금 말한것 처럼 맨뒤에 10개가 카운터 되는 모습이다.

 

반응형