네이버 카페의 게시판에서 글번호, 제목, 작성자, 작성일을 크롤링하는 코드입니다.
링크 주소 복사

▪ 크롤링할 카페의 게시판으로 가서 첫번째 페이지의 링크 주소 복사
크롤링할 페이지 개수, URL 설정
page_num = 5 # 크롤링할 페이지 개수 url = "https://cafe.naver.com/ArticleList.nhn?search.clubid=21771779&search.menuid=56&search.boardtype=L&search.totalCount=151&search.cafeId=21771779&search.page=" driver.get(url+'1') # 크롤링할 페이지 열기
▪ page_num에서 크롤링할 페이지 개수를 지정 ex) 5로 지정했으면 1,2,3,4,5 페이지의 내용을 크롤링함
▪ url 부분에 복사한 링크 주소를 붙여 놓고 숫자 부분만 지움 ex) https://cafe.naver.com/ArticleList.nhn?search.clubid=21771779&search.menuid=56&search.boardtype=L&search.totalCount=151&search.cafeId=21771779&search.page=1 해당 url이 다음과 같으면 1만 지움
Code
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from bs4 import BeautifulSoup import pandas as pd driver = webdriver.Chrome() page_num = 5 # 크롤링할 페이지 개수 url = "https://cafe.naver.com/ArticleList.nhn?search.clubid=21771779&search.menuid=56&search.boardtype=L&search.totalCount=151&search.cafeId=21771779&search.page=" driver.get(url+'1') # 크롤링할 페이지 열기 data_list = [] # 수집한 data를 저장할 list for i in range(page_num): next_url = url + str(i+1) driver.get(next_url) # 다음 페이지로 이동 # 해당 page source 가져오기 driver.switch_to.frame('cafe_main') html = driver.page_source soup = BeautifulSoup(html, 'html.parser') # 필요한 data만 추출 text_num_list = soup.findAll("div",{"class":"inner_number"}) title_list = soup.findAll("a",{"class":"article"}) writer_list = soup.findAll("a",{"class":"m-tcol-c"}) date_list = soup.findAll("td",{"class":"td_date"}) for text_num, title, writer, date in zip(text_num_list, title_list, writer_list, date_list): new_data = [text_num.text, title.text.strip(), writer.text, date.text] # text만 추출 data_list.append(new_data) driver.close() # 페이지 닫기 # DataFrame으로 변환 col_names = ['글번호', '제목', '글쓴이', '작성일자'] df = pd.DataFrame(data_list, columns=col_names)
크롤링 결과

[참고]
'Language > Python' 카테고리의 다른 글
| [Python] Django 투표 앱 만들기 (1) (1) | 2024.12.17 |
|---|---|
| [Python] Django 프로젝트 생성하기 (1) | 2024.12.17 |
| [Python] 데이터프레임 합치기, 중복 행 제거 (0) | 2021.02.24 |
| [Python] len()과 size()의 차이점 (0) | 2021.01.30 |
| [Python] Numpy 모듈 정리(zeros ,random,argmax) (1) | 2021.01.28 |
