정적 웹 페이지 크롤링
• API를 제공하지 않는 웹 페이지를 크롤링할 수 있다.
• BeautifulSoup 라이브러리로 정적 웹 페이지를 크롤링할 수 있다.
• Selenium 라이브러리로 동적 웹 페이지를 크롤링할 수 있다.
conda 환경에서 파이참 실행
가상환경 들어가기
근데 pandas 없음 -> 설치
1-58페이지까지 받을 수 있다
아래에 csv 파일이 만들어짐
from bs4 import BeautifulSoup
import urllib.request
import pandas as pd
import datetime
from selenium import webdriver
import time
#[CODE 1]
def CoffeeBean_store(result):
CoffeeBean_URL = "https://www.coffeebeankorea.com/store/store.asp"
wd = webdriver.Chrome() #교재 코드 수정
for i in range(1, 389): #마지막 매장번호(최근 신규 매장번호) 까지 반복
wd.get(CoffeeBean_URL)
time.sleep(1) #웹페이지 연결할 동안 1초 대기
try:
wd.execute_script("storePop2(%d)" %i)
time.sleep(1) #스크립트 실행 할 동안 1초 대기
html = wd.page_source
soupCB = BeautifulSoup(html, 'html.parser')
store_name_h2 = soupCB.select("div.store_txt > h2")
store_name = store_name_h2[0].string
print(store_name) #매장 이름 출력하기
store_info = soupCB.select("div.store_txt > table.store_table > tbody > tr > td")
store_address_list = list(store_info[2])
store_address = store_address_list[0]
store_phone = store_info[3].string
result.append([store_name]+[store_address]+[store_phone])
except:
continue
return
#[CODE 0]
def main():
result = []
print('CoffeeBean store crawling >>>>>>>>>>>>>>>>>>>>>>>>>>')
CoffeeBean_store(result) #[CODE 1]
CB_tbl = pd.DataFrame(result, columns=('store', 'address','phone'))
CB_tbl.to_csv('./6장_data/CoffeeBean.csv', encoding='cp949', mode='w', index=True)
if __name__ == '__main__':
main()