-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
선생님 기초 마지막강의질문입니다 ㅠㅠ
22.03.22 00:59 작성 조회수 152
1
스크롤까지 잘 내려갔는데, 각각 아이폰 제목 가격 url등등이 출력이 안됩니다 선생님 ㅠㅠ
find_element_by_* commands are deprecated. Please use find_element() instead
browser.find_element_by_css_selector('body').send_keys(Keys.END)
이런 오류도 뜨구요 ㅠㅠ 전 어떻게 해야 할까요
from pkgutil import iter_modules
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
#브라우저 생성
browser=webdriver.Chrome('c:/chromedriver.exe')
#웹사이트 열기
browser.get('https://www.naver.com')
#쇼핑메뉴 클릭하기
browser.implicitly_wait(10)
browser.find_element_by_css_selector('a.nav.shop').click()
#검색창 클릭
time.sleep(2)
search=browser.find_element_by_css_selector('input.co_srh_input')
search.click()
#검새ㄱ어 입력
search.send_keys('아이폰13')
search.send_keys(Keys.ENTER)
#스크롤 전 높이
before_h=browser.execute_script("return window.scrollY")#Java스크립트 명령어 사용 가능
#무한 스크롤
while True:
#맨 아래로 스크롤 내린다.
browser.find_element_by_css_selector('body').send_keys(Keys.END)
#스크롤 사이 페이지 로딩 시간
time.sleep(1)
#스크롤 후 높이
after_h=browser.execute_script("return window.scrollY")
if after_h==before_h:
break
before_h=after_h
#상품정보
items=browser.find_elements_by_css_selector('.basicList_inner__eY_mq')
for item in items:
name=item.find_element_by_css_selector('.basicList_title__3P9Q7').text
price=item.find_element_by_css_selector('.price_num__2WUXn').text
link=item.find_element_by_css_selector('.thumbnail_thumb__3Agq6').get_attribute(href)
print(name,price,link)
답변을 작성해보세요.
1
정현수
질문자2022.03.22
엉엉 ㅠㅠㅠㅠ 선생님 정말 감사합니다꙼̈.
사실 제가 코딩 강의 들으면서 헷갈렸던게 메소드 적으면서 넣는 () 튜플 기호나 등등 ‘’ “” 의 차이도 모르겠구 ..
한 번 정리해주시면 정말 감사하겠습니다꙼̈ㅠㅠ
그리고 영어발음 정말 좋으세요! 언더바 ㅎㅎ
스타트코딩
지식공유자2022.03.25
제가 최근에 만든 강의를 보시면,
파이썬 기초 문법부터 차근차근 설명해 주고 있습니다 ^^
아래 유튜브 영상으로 확인해 보세요 ㅎㅎ
https://youtu.be/REUu0T1xsiU
0
스타트코딩
지식공유자2022.03.22
안녕하세요.
코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.
10초만에 빠르게 발견했습니다.
점점 오타 발견하는 속도가 빨라 지는 것 같습니다 ㅋㅋ
get_attribute(href) 대신에 get_attribute('href')로 바꿔 보세요
그리고 오류는, 셀레니움 4버전으로 업데이트하면 더이상 뜨지 않을 겁니다.
보너스 영상으로 첨부해 드렸습니다 ^^
그리고 아래는 제가 작성한 코드인데, 비교해 보세요 ㅎㅎ
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import csv
url = "https://www.naver.com"
browser = webdriver.Chrome('C:/chromedriver.exe')
browser.get(url)
browser.implicitly_wait(10)
# 쇼핑 메뉴 클릭
browser.find_element_by_css_selector("a.nav.shop").click()
time.sleep(2)
# 검색창 클릭
search = browser.find_element_by_css_selector('input.co_srh_input._input')
search.click()
# 검색어 입력
search.send_keys("아이폰 13")
search.send_keys(Keys.ENTER)
# 스크롤 전 높이
before_h = browser.execute_script("return document.body.scrollHeight")
# 무한 스크롤
while True:
# 맨 아래로 스크롤 내린다.
browser.find_element_by_css_selector("body").send_keys(Keys.END)
# 스크롤 사이 페이지 로딩 시간
time.sleep(1)
# 스크롤 후 높이
after_h = browser.execute_script("return document.body.scrollHeight")
if after_h == before_h:
break
before_h = after_h
# 파일 생성
f = open(r"C:\source\startcoding\startcoding_crawling\03_네이버_쇼핑_크롤링\data.csv", 'w', encoding='CP949', newline='')
csvWriter = csv.writer(f)
# 상품 정보 div
items = browser.find_elements_by_css_selector(".basicList_info_area__17Xyo")
for item in items:
name = item.find_element_by_css_selector(".basicList_title__3P9Q7").text
try:
price = item.find_element_by_css_selector(".price_num__2WUXn").text
except:
price = "판매중단"
link = item.find_element_by_css_selector(".basicList_title__3P9Q7 > a").get_attribute('href')
print(name, price, link)
csvWriter.writerow([name, price, link])
f.close()
답변 2