πŸ–±οΈλ„€μ΄λ²„ μ‡Όν•‘ 검색어 μž…λ ₯, λ¬΄ν•œμŠ€ν¬λ‘€

ꢌ규리·2023λ…„ 5μ›” 30일
0

Crawling

λͺ©λ‘ 보기
7/7
post-thumbnail

πŸ“’ μ—¬λŠ” 말

μžλ™ν™”λ‘œ 넀이버 μžλ™ λ‘œκ·ΈμΈμ„ κ΅¬ν˜„ν•΄λ³΄κ³ , 넀이버 쇼핑을 ν¬λ‘€λ§ν•΄λ³ΌκΉŒ? ν–ˆλ‹€. κ·Έλ ‡κ²Œ 넀이버 μ‡Όν•‘ νŽ˜μ΄μ§€λ₯Ό λΆ„μ„ν•˜λ˜ 쀑 넀이버 쇼핑은 단일 νŽ˜μ΄μ§€μ—μ„œ μŠ€ν¬λ‘€μ„ 내리면 μƒν’ˆμ΄ κ³„μ†ν•΄μ„œ λ³΄μ΄λŠ” ν˜•νƒœλ₯Ό ν•˜κ³  μžˆλŠ” 것을 μ•Œ 수 μžˆμ—ˆλ‹€. "μŠ€ν¬λ‘€λ„ μžλ™ν™”λ‘œ ν•΄λ³ΌκΉŒ? πŸ€”" 생각이 λ“€μ—ˆκΈ°μ— μ‹€μŠ΅ν•˜κ²Œ λ˜μ—ˆλ‹€.

πŸ“Œ gif μš©λŸ‰μ΄ μ»€μ„œ 1. 검색어 μžλ™ μž…λ ₯ , 2. λ¬΄ν•œ 슀크둀 순으둜 λ‚˜λˆ μ„œ 첨뢀

    1. 검색어 μžλ™ μž…λ ₯
    1. λ¬΄ν•œ 슀크둀 (였λ₯Έμͺ½ 슀크둀 보기!)

01. μ‚¬μš©ν•œ μ½”λ“œ 및 문법

1. [μžλ™ν™”] μ‹œμž‘νŽ˜μ΄μ§€ μ„€μ • ν›„, 검색어 μž…λ ₯

driver.get("https://shopping.naver.com/home")
time.sleep(2)

search= driver.find_element(By.CSS_SELECTOR, ".검색창 클래슀λͺ…")
search.click()

search.send_keys('아이폰 14')
search.send_keys(Keys.ENTER)

driver.get("https://shopping.naver.com/home") 은 VSCμ—μ„œ μ‹€ν–‰ ν›„ νŽ˜μ΄μ§€κ°€ 켜질 λ•Œ, μ‹œμž‘ νŽ˜μ΄μ§€λ₯Ό 넀이버 μ‡Όν•‘μœΌλ‘œ μ„€μ •ν–ˆλ‹€.

πŸ€” μ›λž˜λŠ” 넀이버 메인 νŽ˜μ΄μ§€ > 넀이버 μ‡Όν•‘ νŽ˜μ΄μ§€ 순으둜 μ΄λ™ν•˜λŠ” κ²ƒμœΌλ‘œ ν–ˆμ§€λ§Œ 이 μ‹€μŠ΅μ˜ λͺ©μ μ€ 넀이버 쇼핑이기 λ•Œλ¬Έμ— μ‹œμž‘ νŽ˜μ΄μ§€λ‘œ ν–ˆλ‹€.

time.sleep(2) νŽ˜μ΄μ§€κ°€ μ‹€ν–‰λ˜κΈ°λ„ 전에 검색어 μž…λ ₯이 μˆ˜ν–‰λ˜λ©΄ μ•ˆλ˜κΈ° λ•Œλ¬Έμ— μ˜λ„μ μœΌλ‘œ 2초 텀을 λ‘μ—ˆλ‹€.


search= driver.find_element(By.CSS_SELECTOR, ".검색창 클래슀λͺ…") λŠ” μ•„λž˜ 사진과 같은 검색어λ₯Ό μž…λ ₯ν•˜λŠ” 곡간을 선택해쀀 것이닀.


2. [μžλ™ν™”] λ¬΄ν•œ 슀크둀

before_h = driver.execute_script("return window.scrollY")

while True:
	driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)
	time.sleep(1)
	after_h = driver.execute_script("return window.scrollY")
	if after_h==before_h:
	break

	before_h=after_h

슀크둀 μ „κ³Ό ν›„μ˜ 높이λ₯Ό before_h , after_h λ³€μˆ˜λ‘œ μ„€μ •ν•΄μ£Όμ—ˆλ‹€. μ΄λ•Œ, .execute_script λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 문법을 μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” λͺ…령이닀.


πŸ–±οΈ 이제 while λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•˜μ—¬ λ¬΄ν•œμŠ€ν¬λ‘€ κΈ°λŠ₯을 κ΅¬ν˜„ν•  것이닀.

μš°μ„  while문은 λ¬΄ν•œλ£¨ν”„κ°€ 돌 수 μžˆλ„λ‘ true 둜 μ„€μ •ν•΄μ£Όμ—ˆκ³ , 넀이버 μ‡Όν•‘ νŽ˜μ΄μ§€μ˜ body λΆ€λΆ„μ—μ„œ μŠ€ν¬λ‘€μ„ μ œμ–΄ν•  κ²ƒμ΄λ‹ˆκΉŒ CSS μ„ νƒμžλ‘œ bodyλ₯Ό μ„ νƒν•΄μ£Όμ—ˆλ‹€.

πŸ€” λ¬΄ν•œ μŠ€ν¬λ‘€μ„ κ΅¬ν˜„ν•  λ•Œ, λΉ λ₯΄κ²Œ μŠ€ν¬λ‘€μ„ λ‚΄λ €μ„œ 정보가 μ œλŒ€λ‘œ λΆˆλ €μ˜€μ§€ μ•ŠμœΌλ©΄ μ–΄λ–‘ν•˜μ§€? λΌλŠ” 생각을 ν–ˆλ‹€. κ·Έλž˜μ„œ μŠ€ν¬λ‘€μ„ ν•  λ•Œ 정보가 λ‘œλ”© 걸리지 μ•Šλ„λ‘ μ‹œκ°„μ„ λ‘˜ 것 을 μƒκ°ν–ˆκ³  time.sleep으둜 μ‹œκ°„μ˜ 텀을 λ‘μ—ˆλ‹€.

if after_h==before_h: 의 if문을 ν†΅ν•˜μ—¬ 슀크둀 μ „κ³Ό ν›„μ˜ 높이가 κ°™λ‹€λ©΄ if문을 λΉ μ Έλ‚˜μ™€, before_h=after_h ν›„μ˜ 높이λ₯Ό μ „μ˜ 높이에 λŒ€μž…ν•΄μ£Όλ©΄ λ‹€μ‹œ while문을 λŒλ„λ‘ λ¬΄ν•œ 루프λ₯Ό λ§Œλ“€μ–΄μ„œ λ¬΄ν•œ μŠ€ν¬λ‘€μ„ κ΅¬ν˜„ν–ˆλ‹€.

profile
κ·€κ·€ μ½”λ”©

0개의 λŒ“κΈ€