wonpick
devvon
wonpick
방문자🌱
오늘
어제
  • 분류 전체보기 (146)
    • 개발 (42)
      • Spark (7)
      • Hadoop (3)
      • ML&DL (4)
      • Paper Review (0)
      • ETC (24)
    • STUDY (77)
      • Data Engineering (54)
      • Cloud (4)
      • Algorithm (5)
      • SQL (10)
      • Toy Project (1)
    • Android (2)
    • Backend (14)
    • 인턴 (0)
    • 공모전 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • cka
  • 최신 데이터 인프라 이해하기 #7
  • 최신 데이터 인프라 이해하기
  • 인턴강연
  • Python
  • 쿠버네티스
  • 데이터엔지니어링
  • kodekloud
  • SQL
  • 자연어처리

최근 댓글

최근 글

티스토리

Designed By.hELLO
wonpick

devvon

개발

네이버 카페 정보 가져오기

2021. 5. 9. 19:47

BS사용해서 CSS 셀렉팅

import requests
from selenium import webdriver
from bs4 import BeautifulSoup as bs 
import pandas as pd
import time
driver = webdriver.Chrome("C:/Users/user/anaconda3/chromedriver")
driver.implicitly_wait(3)
driver = webdriver.Chrome("C:/Users/user/anaconda3/chromedriver")
driver.implicitly_wait(3)
driver.get('https://m.search.naver.com/search.naver?where=m_article&sm=mtb_viw.all&query=%EC%BD%94%EB%A1%9C%EB%82%98&nso=')
driver.find_element_by_xpath('//*[@id="addParemt"]/li[1]/div[1]/a').click()
title = driver.find_elements_by_css_selector("#ct > div:nth-child(1) > div > h2")
print(title[0].text)
post = driver.find_elements_by_css_selector("#postContent")
print(post[0].text)
reply_num = driver.find_elements_by_css_selector('#app > div > div > div.ArticleContentWrap > div.footer_fix > div > a.f_reply > em')
print(reply_num[0].text)

'오류: Only the following pseudo-classes are implemented: nth-of-type.selenium
tr:nth ->nth-of-type 으로 바꿔준다'

driver.find_element_by_xpath('//*[@id="app"]/div/div/div[2]/div[2]/div/a[1]/em').click()

무한스크롤

#네이버 카페 게시물이 1000개 제한이므로 scroll down <100 
pagedowns = 1
while pagedowns< 68: # 모바일은 한번에 게시물 15개, 웹은 10개 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)
    pagedowns +=1

'링크 추출하기'

# #링크 추출하기 ->하지만 네이버 카페에서는 쓰잘데기 없다. 
html_source = driver.page_source
url = "https://m.search.naver.com/search.naver?where=m_article&sm=mtb_viw.all&query=%EC%BD%94%EB%A1%9C%EB%82%98&nso="
result = requests.get(url)
bs_obj = bs(html_source, "html.parser")
# If_items = bs_obj.find_all("div",{'class':'total_wrap'})
reply = bs_obj.select(".total_wrap > .total_sub > a") #.은 class. 
for a in reply:
    href = a.attrs['href']
    print(href)

'개발' 카테고리의 다른 글

Docker Jupyter 컨테이너에서 볼륨 마운트 시 권한 문제 발생 및 해결  (0) 2025.02.27
Docker 컨테이너에서 볼륨 마운트 파일 권한 문제와 해결 방법  (0) 2024.12.10
[SPARK] SPARK에서 대량의 스몰 파일이 생성되는 문제 해결  (0) 2023.06.18
    wonpick
    wonpick

    티스토리툴바