카테고리 없음

셀레니움을 활용한 네이버 블로그 크롤링

병통 2022. 2. 12. 16:55

나는 "코로나"와 관련된 게시글을 크롤링할거다
네이버는 참 복잡하다

일을 하면서 모든 데이터를 확인하기 위해 크롤링 코드를 이제 공부하는 나도 참 답답하지만
어쩔 수 없다. 
이렇게 된 이상 셀레니움의 모든 것을 공부하고 싶어진다.

네이버 블로그 페이지를 기본값으로 놔두고
내가 찾고자하는 키워드를 word 변수에 저장하여 실행할때마다 간편하게 사용할 수 있게 구축했다.


word = "코로나"
page_url = "https://section.blog.naver.com/Search/Post.naver?pageNo=1&rangeType=ALL&orderBy=sim&keyword=" + word

wb = Workbook(write_only=True)
ws = wb.create_sheet()

driver = webdriver.Chrome("./chromedriver")
driver.get(page_url)
driver.maximize_window()
driver.implicitly_wait(3)

#첫번째 칸 클릭

driver.find_elements_by_css_selector('div.desc')[0].click()  #게시물 갯수 변경(0=첫번째 게시물)
time.sleep(3)
driver.switch_to.window(driver.window_handles[1]) #한번 더 해당페이지를 인식

iframe = driver.find_element_by_id("mainFrame") # id가 mainFrame이라는 요소를 찾아내고 -> iframe임
driver.switch_to.frame(iframe) # 이 iframe이 내가 찾고자하는 html을 포함하고 있는 내용

text = driver.find_element_by_css_selector("div.se-main-container").text

print(text)


driver.switch_to.window(driver.window_handles[1]) #닫을 탭으로 이동 후


driver.close()