일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dx
- 웹크롤링
- httr
- hadoop
- SQL
- ML
- matplot
- 딥러닝
- ggplot2
- ETRI
- 프로그래머스
- arima
- Eda
- kt aivle school
- cnn
- 빅데이터분석기사
- 빅분기
- SQLD
- 기계학습
- 한국전자통신연구원 인턴
- kaggle
- 서평
- 에트리 인턴
- 소셜네트워크분석
- 지도학습
- 에이블러
- 하둡
- 머신러닝
- KT AIVLE
- 시계열
- 하계인턴
- 에이블스쿨
- 한국전자통신연구원
- 다변량분석
- Ai
- KT 에이블스쿨
- python
- r
- 시각화
- 가나다영
Archives
- Today
- Total
소품집
Selenium을 크롬에서 구동하기 - 네이버카페 크롤링 본문
728x90
Selenium 이용하기
셀레니움은 브라우저(ex 크롬)를 자동으로 구동할 수 있는 기능
# 셀레니움 이용하기
library(RSelenium)
library(wdman)
library(dplyr)
library(httr)
library(rvest)
# 리모트 드라이브 설정
remote <- rsDriver(browser = c('chrome'), chromever = '81.0.4044.69')
remote$client$open()
웹 브라우저 제어
네이버 메인 페이지로 이동하기
# 웹 브라우저 제어
# 네이버 메인 페이지로 이동하기
remDr <- remote[['client']]
remDr$navigate('http://www.naver.com')
# 로그인 링크 찾기
login <- remDr$findElement(using = 'css', value='a.link_login')
# 로그인 버튼 클릭
login$clickElement()
계정정보 입력하기
# 아이디 입력창의 위치를 지정
id <- remDr$findElement(using='css',value='input#id.int')
# 아이디를 입력
id$sendKeysToElement(sendKeys = list('본인의 id'))
# 비밀번호 입력창의 위치 조정
pw <- remDr$findElement(using='css',value='#pw.int')
# 비밀번호를 입력
pw$sendKeysToElement(sendKeys = list('본인의 pw'))
# 로그인 화면에 있는 로그인 버튼의 위치를 찾습니다.
login <- remDr$findElement(using='css',value='#frmNIDLogin > fieldset > input')
login$clickElement()
크롤링 대상 카페로 이동
로그인 상태에서 열리는 카페 글로 이동합니다
remDr$navigate(url='https://m.cafe.naver.com/sch40602f8040011910')
# 페이지에 있는 내용물을 가져오기
remDr$getPageSource()
# 리스트키의 내용물 가져오기 (첫 번째 키)
res <- remDr$getPageSource() %>% `[[`(1)
url <- res %>%
read_html() %>%
html_nodes(css='li.board_box a') %>%
html_attr('href')
url[url!='#']
특정 페이지의 컨텐츠를 추출해보자
# 특정페이지의 컨텐츠를 추출해보자
# -> 첫 번째 게시물을 가져오기 위해 많은 url 중에서 첫번째 url을 가져와봤다
remDr$navigate(url[[1]])
# 현재 열린 웹 페이지의 html을 가져오기
res <- remDr$getPageSource() %>% `[[`(1)
# 카페글 본문을 추출
body <- res %>%
read_html() %>%
html_nodes(css = 'div#postContent') %>%
html_text(trim=TRUE)
728x90
'Web crawling' 카테고리의 다른 글
소셜네트워크 분석 (0) | 2020.06.19 |
---|---|
소셜네트워크 정의 및 igraph 패키지 사용하기 (2) | 2020.06.16 |
[웹 크롤링] 로케일에 대한 이해 (0) | 2020.04.28 |
[웹 크롤링] KOSPI 200 기업 (0) | 2020.04.25 |
[웹 크롤링] JavaScript로 된 html 불러오기 (0) | 2020.04.13 |
Comments