Database for Everything

[R 프로그램] 웹 크롤링 - 교보문고 주간 베스트 셀러 도서목록 불러오기 본문

R

[R 프로그램] 웹 크롤링 - 교보문고 주간 베스트 셀러 도서목록 불러오기

Yeenn 2021. 12. 2. 11:07
728x90

패키지 설치

"httr", "rvest" 패키지를 설치한 후 load 한다. 

(http 파일을 read 할 수 있는 GET함수는 httr패키지, read_html은 rvest 패키지에 들어있는 함수이다.)

 

 

 

 

 

크롤링하고자 하는 교보문고 [종합주간 베스트 페이지]

 

http://www.kyobobook.co.kr/bestSellerNew/bestseller.laf

 

교보문고 종합 주간 집계 | 국내도서 | 베스트셀러 - 교보문고

 

www.kyobobook.co.kr

 

 

 

 

 

크롤링-URL 불러오기

 

크롤링을 하기 위해서는 GET함수를 이용해 해당 서버에 정보를 요청해야 한다. 

url이라는 변수에 url 주소를 문자열로 저장하였고, 이 변수에 GET 함수를 적용한 후, GET 함수에서 요청한 결과를 get_url에 저장하였다. 

 

 

'data'를 확인해보면, 아래와 같은 화면을 볼 수 있다. 

status 200이라는 것은 서버에 정보 요청이 성공했다는 뜻이다. 

 

 

* 크롤링하고자 하는 페이지에서 우클릭 > 검사 를 누르면, 아래와 같은 화면이 뜬다. 

Network 탭으로 들어가서 F5(새로고침)을 누르면, status가 200으로 나오는 것을 확인할 수 있다.(정상)

 

 

 

 

 

크롤링-인코딩

 

'EUC-KR'은 컴퓨터가 한글을 이용할 수 있도록 2진수로 표기하는 방식 중 하나이다. 

인코딩 후, read_html 함수를 이용해 html 코드를 read하였다.

 

'주간 베스트셀러 도서목록'을 가져오기 위해 URL에 접속해 개발자도구로 도서의 위치를 확인하면, 도서가 <strong> 태그로 감싸져 있는 것을 확인할 수 있다. 

 

 

 

 

 

 

크롤링-도서목록 불러오기

 

 

html_nodes 함수를 사용해 아래와 같이 입력하면, html 문서에서 strong 태그를 전부 가져올 수 있다.

 

 

 

책 제목 외에도 다른 많은 정보들이 load되므로, a태그 안의 strong 태그를 다시 불러왔다. 

 

 

하지만 여전히 다른 정보들이 많아 도서목록을 보기 힘들다. 

이번에는 class 가 title인 태그 안 a 태그 안의 strong 태그를 불러왔다. 

 

 

 

책 제목이 모두 잘 불러와졌으니, 태그를 제거한 후, 깔끔하게 텍스트만 불러왔다.

이 때, html_text를 사용해 텍스트만 불러올 수 있다. 

(해당 페이지에 20번째 순위까지 나와있으므로, 20위까지 load됨.)

 

728x90
Comments