메뉴 건너뛰기

프로그래밍


R에서 페이스북 페이지의 포스트를 크롤링 하는 예제입니다.

이런 저렁 방법을 많이 찾아보고 시도 하였으나 본인 것이 아닌 타인의 타임라인에 있는 포스트들을 크롤링 하는 (공개된) 방법은 없더군요.

단, 개인 타임라인이 아닌 공개 "페이지"는 가능합니다. 


#필요 패키지
install.packages("Rfacebook")
library(Rfacebook)

#페이스북 앱id 정보와 secret 값 입
fbAuth = fbOAuth(app_id = "facebook_app_id", 
                 app_secret = "facebook_app_secret",
                 extended_permissions = FALSE)

start_date = '2016/12/01'
end_date = '2017/01/30'
scrape_days=seq(from = as.Date(start_date), to = as.Date(end_date), by = 'days')

#공인 페이지s
stars <- c("iu.loen", "OfficialLeeMinho", "barackobama")
posts <- c()

#공인 페이지로부터 페이지 정보 얻기
for (i in 1:length(stars)) {
  for(scrape_day in scrape_days) {
    tryCatch(
      {
        daypost=getPage(page = stars[i],
                        token = fbAuth,
                        since = as.Date(scrape_day, origin = "1970-01-01"),
                        until = as.Date(scrape_day, origin = "1970-01-01") + 1)
        
        posts = rbind(posts, daypost)
      },
      
      error = function(e){}
    )
  }
}

View(posts)




profile
  • 안녕하세요! 포스팅을 보고 r을 공부하고 있는 학생입니다. 해당 코드를 통해서 실행한 결과 posts 페이지 결과값에서 No data available in table 이 나오는데 어떤 경우인지 알 수 있을까요?^^ 좋은 글 감사합니다.
  • profile
    안녕하세요? 혹시, 소스코드를 전혀 수정하지 않은 상태로 실행을 해 보셨다면, app_id 혹은, app_secret 의 값을 제대로 반영하였는지 확인을 부탁드립니다. 페이스북으로 부터 이 두 값을 얻는 방법은 아래 경로에 나와 있습니다^^
    http://www.bloggingshiksha.com/how-to-get-app_id-and-app_secret-key-for-facebook-applications/

    즉, 상기 주소를 참조하여 두 값을 얻어 아래의 "facebook_app_id" 와 "facebook_app_secret"의 값을 수정해 주셔야 합니다.

    app_id = "facebook_app_id",
    app_secret = "facebook_app_secret"

    감사합니다!
제목 날짜
[TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... 4 2016.02.20
[TIP] JQuery와 PHP로 이미지 파일을 업로드 하는 간단한 소스 (How to upload image file on PHP server by using JQuery) 2015.04.03
[TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) 3 2016.04.16
[TIP] Docker상의 Syntaxnet 결과 포맷을 수정하기 2016.08.07
[TIP] 데이터를 Node에서 암호화하고 PHP에서 복호화 하기 2016.08.19
[TIP] node의 lambda-local 테스트 팁 2016.08.19
[TIP] node 에서 Basic authentication 인증과 함께 http, https 요청하기 2016.09.01
[TIP] php로 기상청에서 제공하는 기상정보 API 호출하기 2017.01.17
[TIP] 네이버 오픈 API를 로컬 PC에서 호출하기 2017.02.01
[TIP] 네이버 영화 정보와 전문가 평점 얻어오기 2017.02.10
[TIP] R에서 페이스북 페이지 정보 크롤링 하기 2 2017.02.11
[TIP] GUNMAN의 영화 점수 테이블을 이용한 딥러닝 예제 2017.02.15
[TIP] 자바스크립트와 PHP코드간에 암호화 통신하기 (Encrypt with Javascript, Decrypt with PHP) 2017.03.16
[TIP] 페이스북 개인 담벼락의 좋아요수 크롤링하기 2017.07.15
[TIP] The function size must be used with a prefix when a default namespace is not specified 오류 해결하기 2017.08.02
[TIP] 파이선에서 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position ... 오류 해결 방법 2017.09.29
[TIP] 파이선에서 Redis 이벤트 받기 2017.10.12
[TIP] 아두이노에서 AWS Lambda로 제작한 Restful API 호출하기 (The way how to call AWS Lambda Restful API from Arduino) 2018.01.18
[TIP] 파이선에서 서브프로세스를 실행시키고 출력되는 내용을 얻어오기 2018.01.22
[TIP] 파이선에서 AWS Lambda로 만든 Restful API 호출하기 (How to call AWS Lambda Restful API from Python) 2018.01.23
[TIP] 나만의 OpenAPI 배포 플랫폼 만들기 2018.01.30
[TIP] Ajax에서 AWS Lambda Rest API CALL 하기 (How to call AWS Lambda API from Ajax) 2018.02.12
태그 목록
위로