이제 코딩을 해봅시다.
필요한 라이브러리를 불러옵시다.
1 2 | from urllib.request import urlopen from bs4 import BeautifulSoup | cs |
이제 해당 웹페이지에 접속해봅시다.
1 2 3 | url = 'http://movie.daum.net/moviedb/grade?movieId=94074&type=netizen&page=1' webpage = urlopen(url) | cs |
urlopen() 함수 얘가 해당 url을 따라 웹이 접속해서 해당 페이지를 webpage에 넣어둡니다.
그리고 다음과 같은 코드를 작성합니다.
1 2 3 | source = BeautifulSoup(webpage, 'html5lib') review = source.find('p', {'class':'desc_review'}) print(review.get_text().strip()) | cs |
find() 함수 괄호 안에 저것은 무엇일까요?
저건 해당 웹페이지에서 내가 뽑아내고자 하는 댓글창의 위치입니다.
이를 확인하는 방법을 알아보겠습니다.
크롬 기준으로 설명할께요.
댓글의 코멘트를 드래그하고 우클릭을 해서 검사를 클릭합니다.
그러면 왼쪽에 개발자 툴이 뜨고
html코드 중에서 드래그 한 부분을 관장하는 코드 부분이 표시됩니다.
네 저 부분이 댓글입니다.
저걸 통해서 find 함수 안에 'p', {'class':'desc_review'} 를 쓸 수 있게 된 겁니다.
저게 왜 이렇게 써지는지는.. html 공부를 해야 알 것 같습니다.
해서 코드를 돌려보면!
이렇게 그대로 출력이 되네요~
이제는 해당 웹페이지에 있는 모든 댓글 리스트를 출력해보도록하겠습니다.
1 2 3 4 5 | source = BeautifulSoup(webpage, 'html5lib') reviews = source.find_all('p', {'class':'desc_review'}) for review in reviews : print(review.get_text().strip()) | cs |
우선 find()를 find_all()함수로 바꿉니다.
그럼 모든 리뷰들이 '차례차례' reviews에 저장이 됩니다.
그리고 for문으로 reviews를 하나하나씩 review로 가져와서 print합니다.
결과물은 아래와 같습니다.
모든 리뷰가 뽑아져 나왔네요.
좋습니다.
다음 시간에는 크롤링한 문자열들을 저장하는 방법을 알아보도록 하겠습니다.
'프로그래밍 이것저것' 카테고리의 다른 글
파이썬 웹 크롤링 하기 1 : url 구조 파악하기 (0) | 2017.08.19 |
---|---|
향상된 for문 (0) | 2017.08.03 |