반응형
크롤링(crawling)
크롤링은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해내는 행위를 말합니다.
라이브러리 다운
웹 크롤링을 위해 필요한 라이브러리가 있습니다. 먼저 설치를 하고 시작하겠습니다.
필요한 라이브러리는 두가지 입니다.
requests
requests 라이브러리는 우리가 크롤링을 할 웹 페이지를 요청하기 위해 필요한 라이브러리
BeautifulSoup
웹 페이지를 효율적으로 파싱해서 원하는 정보를 찾을 수 있게 도와주는 라이브러리
설치 방법
pip를 이용하여 설치
파이참에서 설치
File -> Setting -> Project: 프로젝트 이름 -> Project Interpreter
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import requests from bs4 import BeautifulSoup def naver_movie(): url = "https://movie.naver.com/movie/sdb/rank/rmovie.nhn" html = requests.get(url).text soup = BeautifulSoup(html, "html.parser") tags = soup.find_all("div", {"class": "tit3"}) for idx, tag in enumerate(tags): tag.a.get_text() print(idx+1, tag.a.get_text()) naver_movie() | cs |
결과 값
2018년 05월 28일 기준 네이버 영화랭킹 순위 입니다. 총 50위 까지 표시가 되지만 현재 17위 까지 표시했습니다.
추가 설명
Line 10을 보면 find_all("태그". {"태그 속성": "속성 이름"}) 이렇게 입력하게 되어 있습니다. 우리가 크롤링하려고 하는 값은 영화 제목이므로 그 부분의 태그를 알아야 합니다. "데드풀 2" 라는 텍스트를 포함하고 있는 태그는 <div> 태그이며 이 태그의 class 속성의 이름은 "tit3" 가 됩니다. 즉 다시 말하자면
"<div> 태그 중에 class 속성의 이름이 "tit3"으로 된 것은 모두 추출" 하라는 말이 됩니다.
현재 영화 제목을 나타내는 모든 텍스트는 이 태그안에 있고 순차적으로 모든 영화 제목을 추출하게 됩니다.
만약 영화 제목이 아닌 다른 <div> 태그가 똑같은 "tit3" class 속성을 가지고 있다면 당연히 그것 또한 추출하게 됩니다.
그래서 이렇게 데이터를 추출할 때는 미리 잘 확인하고 추출해야 합니다.
반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기
'Programming > Python' 카테고리의 다른 글
[python] 파이썬 설치 및 파이참 설치 (1) | 2018.05.15 |
---|
댓글