네이버쇼핑(닭가슴살) 크롤링
78
codingchoding
작성한 질문수 1
1
안녕하세요 스타트코딩님! 수업 잘 듣고 있는 학생입니다. 질문이 있어 글 남깁니다.
수업 듣기 전에 혼자 해볼 때 저는 soup를 사용하지 않고 find_element를 사용해서 이렇게 코드를 작성했는데 뭐가 다른 걸까요?
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pandas as pd
driver = webdriver.Chrome()
driver.get('https://search.shopping.naver.com/search/all?query=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4')
# 스크롤 전 높이
last_height = driver.execute_script('return document.body.scrollHeight')
while True:
# 스크롤 끝까지 내리기
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
# 대기 시간 줘야됨 !!!
time.sleep(1)
# 스크롤 후 높이
after_height = driver.execute_script('return document.body.scrollHeight')
# 비교 (if, break)
if last_height == after_height:
break
# 스크롤 전 높이 업데이트
last_height = after_height
products = driver.find_elements(By.CSS_SELECTOR, '.product_item__MDtDF')
data = []
for product in products:
name = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K').text
link = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K > a').get_attribute('href')
price = product.find_element(By.CSS_SELECTOR, '.price_num__S2p_v').text.split('원')[0].replace(',', '')
data.append([name, link, int(price)])
df = pd.DataFrame(data, columns = ['상품명', '상세페이지링크', '가격'])
df.to_excel('네이버쇼핑.xlsx')
답변 1
1
그렇게 작성해도 결과는 똑같으므로 괜찮습니다 ㅎㅎ
그런데 속도적인 측면에서 페이지 html을 가져온뒤 Beautifulsoup으로 크롤링하는게
유리하게 작용해요~
셀레니움 환경설정 오류
0
52
2
네이버 로그인 관련
0
282
2
안녕하세요 셀레니움에 대해서 질문
0
89
1
크롤링 연습사이트 문의
0
102
2
선택자 질문
0
74
2
'특정 요소가 나타날 때까지 스크롤' 부분 에러
0
78
2
자동 로그인 질문
0
90
2
44강 제목, 링크
0
107
1
원하는 값이 없을 때
0
91
2
크롤링한 링크가 엑셀로 들어가면 작동이 안되요
0
230
2
셀레니움 PDF자료는 받을 수 있나요
0
100
2
글목록 추출하기
0
100
2
메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문
0
91
2
강의 노트가 어디에 있는건가요?
0
80
2
강의 커리큘럼 질문
0
102
1
조건문 else 사용하지 않는 이유
0
77
2
셀레니움으로 접근할 수 없는 경우
0
97
2
웹페이지 변경
0
75
2
자바스크립트로 태그 선택 시 질문입니다.
1
65
2
수료증은 어떻게 받나요?
0
122
2
class명을 활용하여 선택자를 만들지 않는 경우..?
0
61
2
드라이버가 안 열려요
0
79
2
이거 해결방법 아시는 분?
0
121
2
네이버 지식인 크롤링..
0
202
2





