인프런 커뮤니티 질문&답변
네이버 지도 웹크롤링
작성
·
1K
·
수정됨
0

웹 브라우저에서 캡쳐했듯이 저는 왼쪽바에 표시된 부분만 크롤링하여 CSV로 변환하는 것이 목표입니다.
스타트 코딩에서 "네이버 쇼핑 아이폰 13을 크롤링" 강의를 보고 참고나 힌트를 얻을 것이라 생각했는데 첫 번째는 api를 사용해서 크롤링을 하는 구현하는 방법이거나 , 두번째는 스타트 코딩에서 네이버쇼핑 크롤링 하는 법을 다시보고 코드를 비교하면서, 개발자도구에 HTML을 오픈하여 해당 CSS를 COPY SELECTOR를 가져와서 넣은뒤 반복문으로 돌려서 가져오는 방법이 맞는건지 알고 싶습니다...
두번쨰가 가장 수월할것이라고 예상을 하였지만 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://map.naver.com/v5/entry/place/38781676?c=14140424.1634944,4509672.0214674,13,0,0,0,dh&placePath=%2Fbooking%3ForderRedirectUrl=https%253A%252F%252Fm.booking.naver.com%252Forder%252Fbizes%252F428280%252Fitems%252F3835308%253Ftheme%253Dplace%2526refererCode%253Dmenutab%26pcmap=1%26service-target=map-pc&entry=plt&area=plt"
wd = webdriver.Chrome('c:/chromedriver.exe')
for i in range(1, 10): #메뉴 수 만큼 반복한다.
wd.get(CoffeeBean_URL)
time.sleep(1)
try:
time.sleep(1)
html = wd.page_source
soupCB = BeautifulSoup(html, 'html.parser')
menu_img_h2 = soupCB.select("#root > div.naver_order_contents > div > div > div.order_list > div:nth-child(2) > div:nth-child(1) > ul > li:nth-child(1) > div > a > div.info_img > span")
menu_img = menu_img_h2[0].string
menu_name = soupCB.select('#root > div.naver_order_contents > div > div > div.order_list > div:nth-child(2) > div:nth-child(1) > ul > li:nth-child(1) > div > a > div.info_detail > div.tit')
print(menu_name) #메뉴명 출력하기
menu_price = soupCB.select('#root > div.naver_order_contents > div > div > div.order_list > div:nth-child(2) > div:nth-child(1) > ul > li:nth-child(1) > div > a > div.info_detail > div.price')
result.append([menu_img] + [menu_name] + [menu_price])
except:
continue
return
def main():
result = []
print("CoffeeBean store crawling >>>>>>>>>>>>>>>>>>")
CoffeeBean_store(result)
CB_tbl = pd.DataFrame(columns=('menu_img', 'menu_name' , 'menu_price'))
CB_tbl.to_csv('./CoffeeBean(신논현역점).csv' , encoding='cp949', mode='w', index=True)이미지는 링크로 넣어도 상관은 없습니다...
현재 작성한 코드는 다음과 같습니다...
제가 작성한 부분이 가능할지 실무진 분들께 조언을 구해봅니다...
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




