[Python] 네이버 카페 게시글 크롤링 selenium, bs4

2023. 9. 9. 21:33·Language/Python
목차
  1. 링크 주소 복사
  2. 크롤링할 페이지 개수, URL 설정 
  3. Code 
  4. 크롤링 결과 

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

링크 주소 복사

링크 복사

 

▪ 크롤링할 카페의 게시판으로 가서 첫번째 페이지의 링크 주소 복사

크롤링할 페이지 개수, 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)

크롤링 결과 

크롤링 결과

 

 

 

[참고]

https://stricky.tistory.com/471

'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
  1. 링크 주소 복사
  2. 크롤링할 페이지 개수, URL 설정 
  3. Code 
  4. 크롤링 결과 
'Language/Python' 카테고리의 다른 글
  • [Python] Django 투표 앱 만들기 (1)
  • [Python] Django 프로젝트 생성하기
  • [Python] 데이터프레임 합치기, 중복 행 제거
  • [Python] len()과 size()의 차이점
Doodo
Doodo
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[Python] 네이버 카페 게시글 크롤링 selenium, bs4
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.