네이버 중고나라 게시글 데이터 수집
- selenium에서 iframe에 있는 데이터 수집
- https://cafe.naver.com/joonggonara.cafe
중고나라 : 네이버 카페
1초에 평균 4.5건의 신상품 등록! 찾는 그 제품, 중고나라에는 다 있다!
cafe.naver.com
from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd
url = "https://cafe.naver.com/joonggonara.cafe" # url 설정
# 1. 웹브라우져 열기 및 페이지 이동
driver = webdriver.Chrome()
driver.get(url)
# 2. 검색창에 "맥북"을 입력하고 검색 버튼 클릭
keyword = "맥북"
driver.find_element(By.CSS_SELECTOR, "#topLayerQueryInput").send_keys(keyword)
driver.execute_script("searchBoard();")
# 3. 게시글 목록 데이터 수집 : iframe
selector = ".article-board > table > tbody > tr"
elements = driver.find_elements(By.CSS_SELECTOR, selector)
print(len(elements))
# 3-1. iframe 으로 driver 이동
iframe = driver.find_element(By.CSS_SELECTOR, "#cafe_main")
print(iframe)
driver.switch_to.frame(iframe)
selector = ".article-board > table > tbody > tr"
elements = driver.find_elements(By.CSS_SELECTOR, selector)
print(len(elements))
element = elements[0]
title = element.find_element(By.CSS_SELECTOR, ".article").text
writer = element.find_element(By.CSS_SELECTOR, ".p-nick").text
print(title, writer)
# 3-2. 게시글 제목과 작성자를 담은 df생성
data = []
for element in elements:
data.append({
"title": element.find_element(By.CSS_SELECTOR, ".article").text,
"writer": element.find_element(By.CSS_SELECTOR, ".p-nick").text,
})
df = pd.DataFrame(data)
df.tail(2)
# 3-3. 원래 default frame 으로 이동
driver.switch_to.default_content()
# 4. 웹브라우져 종료
driver.quit()
'Python > Web Crawling' 카테고리의 다른 글
008 Scrapy 실습 (0) | 2023.03.28 |
---|---|
007-1 실습, xpath 사용 (0) | 2023.03.28 |
006-1 실습, Selenium (TED 데이터 수집) (0) | 2023.03.26 |
006-1 실습, Gmarket 상품 데이터 수집 (+ 이미지) (0) | 2023.03.26 |
005-1 실습, 네이버 연관 검색어 수집 (0) | 2023.03.26 |