조종 다음은 개발

웹 크롤링 수업을 듣고나서 최근들어서 관심이 있는 맥북의 대한 중고 게시글 정보들을 크롤링 해보고 싶은 마음에 시도해보았다.

처음에는 수월하게 잘 진행 되는듯 했으나,,,

중고나라에 들어가서 '맥북'을 검색한 뒤 게시글 하나를 클릭하고 뒤로가기 까지는 잘 진행 됐다. 하지만 그 이후론 문제가 생겼다.

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.implicitly_wait(3)

driver.get('https://cafe.naver.com/joonggonara')
driver.maximize_window()
time.sleep(1)

# 맥북 검색
driver.find_element_by_css_selector('#topLayerQueryInput').send_keys('맥북')
driver.find_element_by_css_selector('#cafe-search .btn').click()
time.sleep(1)

# 게시글 들어가기
driver.switch_to.frame('cafe_main')

for i in range(len(driver.find_elements_by_css_selector('.article'))):
    articles = driver.find_elements_by_css_selector('a.article')[i]
    articles.click()
    time.sleep(1)
    driver.back()
    

위 코드를 실행하면 list index out of range 라는 에러가 나왔다..

for 구문에 준 범위가 벗어나지는 않을텐데 무엇이 문제인지 구글링을 해봤지만 해결책은 나오지 않았다.. ㅠㅠ

그래서 중고나라 사이트의 html을 다시한번 자세히 보았다. 처음에는 잘 진행 되었다가 '뒤로가기' 이후로는 문제가 발생하기 때문에 아마도 '뒤로가기'를 한 이후에 사이트가 바뀌어서 그런가 싶었다.

 

그래서 위 코드 for 구문 마지막 줄에 drive.swich_to.frame('cafe_main') 을 다시한번 더 써줬다. 그랬더니 문제 해결 ㅠㅠ

 

이 문제 하나 때문에 몇시간을 잡아먹었는지,, ㅠ 하지만 해결됬으니 만족한다!! 계속 진행해야겠다 ㅎㅎ

profile

조종 다음은 개발

@타칸

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!