안녕하세요. 루크입니다.

 

이번 시간에는 코랩을 바탕으로 코드를 작성하였습니다.

코랩은 한 번 실행 할 때 마다, 패키지와 모듈을 다시 설치해야하는 단점이 있지만, 온라인 상에서 특별한 프로그램 설치없이, 간단하게 코드를 저장 및 공유가 가능하다는 큰 장점이 있습니다~!

자세한 설명은 유튜브를 참고 부탁드리겠습니다 ㅎ

 

첫 번째 - 패키지 모듈 설치 코드

# install chromium, its driver, and selenium
!apt install chromium-chromedriver
!pip install selenium

두 번째 - 쇼피 로그인 코드

from bs4 import BeautifulSoup

import requests

import pandas as pd

import os

import time

import openpyxl

import datetime

# set options to be headless, ..
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# open it, go to a website, and get results
driver = webdriver.Chrome('chromedriver',options=options)

#url
url = 'https://seller.shopee.sg/account/signin'
driver.get(url)

time.sleep(1.5)

# 아이디/비밀번호를 입력해준다.
driver.find_element_by_xpath('//*[@id="shop-login"]/div[1]/div/div/div/div/input').send_keys('아이디')
driver.find_element_by_xpath('//*[@id="shop-login"]/div[2]/div/div/div/div/input').send_keys('비밀번호')
driver.implicitly_wait(3)

# stay signed in 체크박스 채우기(클릭)
driver.find_element_by_xpath('//*[@id="shop-login"]/div[4]/div/div/button').click()

time.sleep(1)
driver.implicitly_wait(5)


print("로그인 완료")

세 번째 - 쇼피에서 검색수, 상품수 긁어오기

i = 0
while True:
    
    try:


        time_delay = 3
        time_delay2 = 5
        print('검색해주세요. 종료 시 "종료" ')
        keyword = input('입력 : ')
        if keyword == "종료":
            print("종료")
            break

        else:
    #-----------------------------------------------------------------

            # 밑에 주소를 바꾸어주세요.
            url = f'입력해주세요'
            driver.get(url)
            time.sleep(time_delay)

            sg_keywords = driver.find_element_by_css_selector('body > pre').text.split('{')[2].split(',')

            print(sg_keywords[3])

            url2 = f'https://shopee.sg/search?keyword={keyword}'

            driver.get(url2)

            time.sleep(time_delay)

            driver.implicitly_wait(time_delay2)



            html = driver.page_source

            soup = BeautifulSoup(html, 'html.parser')

            sg_view = sg_keywords[3][16:]

            sg_page = soup.select_one("div.shopee-mini-page-controller > div > span.shopee-mini-page-controller__total").text

            sg_item = int(sg_page)*50

            print("SG 상품수 : " + str(sg_item))

            sg_ranking = round(sg_item/int(sg_view),2)
            print("SG 경쟁강도 : " + str(sg_ranking) )


            if i == 0:
                total = [keyword, int(sg_view),sg_item,sg_ranking]
                total_pd = pd.DataFrame(total).transpose() 
                total_pd.columns = ['검색', 'sg 검색량','sg 상품수', 'sg경쟁강도']
                display(total_pd)
                i = i+1

            else:
                total = [keyword, int(sg_view),sg_item,sg_ranking]
                total_pd.loc[i] = total
                display(total_pd)
                i = i+1


    except:
        pass
    

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기