빅데이터 서비스 교육/크롤링

크롤링

Manly 2022. 5. 18. 12:36
반응형

스타벅스 지역구별 매장명 가져오기

지역별(광주) 선택 후 - 구별로 매장명 가져오기

 

store_name_list = []
store_adr_list = []
rank_list = []
url='https://www.starbucks.co.kr/store/store_map.do'
driver = wb.Chrome()
driver.get(url)
time.sleep(4)

for i in range(2,7): # range (시작값,끝값,증감) -> 끝값 포함 x +1해줘야한다.
    where = driver.find_element_by_css_selector('header.loca_search > h3 > a')
    where.click()
    time.sleep(0.5)
    
    gwangju = driver.find_element_by_css_selector('ul.sido_arae_box > :nth-child(3)')
    gwangju.click()
    time.sleep(0.5)
    
    gu = driver.find_elements_by_css_selector('ul.gugun_arae_box > :nth-child({})'.format(i))
    gu[0].click()
    time.sleep(0.5)
    
    soup = bs(driver.page_source, 'lxml')
    store_name = soup.select('#mCSB_3_container > ul > li > strong')
    store_adr = soup.select('ul.quickSearchResultBoxSidoGugun > li.quickResultLstCon > p.result_details')
    
    for j in store_name:
        store_name_list.append(j.text.strip())
        time.sleep(0.5)
    for h in store_adr:
        store_adr_list.append(h.text.strip())
for k in range(len(store_name_list)):
    rank_list.append(k+1)

len(store_name_list)     # 지역 전체보기로 했을때 60개 매장

60

import pandas as pd
dic = {'매장명':store_name_list,'매장주소':store_adr_list,'번호':rank_list}
df = pd.DataFrame(dic)
df.set_index('번호',inplace = True)
df

	매장명	매장주소
번호		
1	광주비아DT	광주광역시 광산구 첨단과기로 81 (비아동)1522-3232
2	광산수완	광주광역시 광산구 장신로 134, 1~2층 (수완동)1522-3232
3	광주첨단	광주광역시 광산구 첨단중앙로 104 (월계동)1522-3232
....................................................
54	광주금호DT	광주광역시 서구 운천로 107 (쌍촌동)1522-3232
55	광주풍암	광주광역시 서구 풍암2로 8 (풍암동) 한아름빌딩1522-3232
56	광주상무시민로	광주광역시 서구 운천로 253 (치평동) 103호1522-3232
57	광주상무중앙로	광주광역시 서구 상무중앙로 46 (치평동) 1층1522-3232
58	광주화정DT	광주광역시 서구 상무대로 10801522-3232
59	광주상무DT	광주광역시 서구 상무대로 847 (쌍촌동)1522-3232
60	광주신세계DT	광주광역시 서구 죽봉대로 33 (화정동)1522-3232

 

 

같은 문제 다른코드 복습용

#같은문제 다른 코드 복습용

l_search = driver.find_element_by_css_selector('.loca_search > h3 > a')
l_search.click()
time.sleep(0.2)

local = driver.find_elements_by_css_selector('ul.sido_arae_box > li')
local[2].click() # 광주클릭
time.sleep(0.2)

gu = driver.find_elements_by_css_selector('ul.gugun_arae_box a.set_gugun_cd_btn')
add_list = []

for i in range(len(gu)):
    
    if i != 0:
        gu = driver.find_elements_by_css_selector('ul.gugun_arae_box a.set_gugun_cd_btn')
        gu[i].click()
        time.sleep(0.2)

        soup = bs(driver.page_source, 'lxml')
        add = soup.select('#mCSB_3_container > ul > li > p')

        for i in add:
            add_list.append(i.text)

        l_search = driver.find_element_by_css_selector('.loca_search > h3 > a')
        l_search.click()
        time.sleep(0.2)

        local = driver.find_elements_by_css_selector('ul.sido_arae_box > li')
        local[2].click() # 광주클릭
        time.sleep(0.2)
반응형