'프로그래밍 이것저것' 카테고리의 글 목록 :: A4용지

이제 코딩을 해봅시다.


필요한 라이브러리를 불러옵시다.

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

웹 크롤링을 쉽게 하기 위한 라이브러리를 소개합니다.

beautifulsoup4 라는 라이브러리입니다.

우선 이 라이브러리를 다운받아 봅시다.


저는 이미 설치되어 있어서 Requirement already satisfied 라고 나오네요.


그럼 크롤링하기 위한 준비는 된 것입니다.

하나 빼고요.

뭐냐하면 웹 언어를 알아야겠더라고요.. html과 css.


이건 나중에 공부하기로 기약하고, 우선은 응용 버전보다는 책에서 소개된 부분만 차근히 따라가봅시다.


이번 시간 우리의 크롤링 타겟은 다음 영화 홈페이지에서 네티즌들의 댓글 반응들을 긁어 모은는 것입니다.

두근두근 합니다.


우선 해당 페이지로 들어가 봅시다.

http://movie.daum.net/moviedb/grade?movieId=108768

슈퍼배드 3의 댓글 창입니다.


우리는 여기 있는 댓글들을 모두 긁어오고 싶은데요, 그러려면 댓글 페이지 중 첫 페이지 의 url 뿐만 아니라 두번째 세번째 .... 쭉 알아야 합니다.


이 url들이 모두 랜덤적으로 형성되어 있지는 않을 것입니다.

특정한 규칙들이 있을텐데요, 이런 url구조는 두번째, 세번째 페이지를 들어가 보면 알 수 있습니다.


두번째 페이지를 들어가 보겠습니다.

http://movie.daum.net/moviedb/grade?movieId=108768&type=netizen&page=2

세번재 페이지를 들어가 보겠습니다.

http://movie.daum.net/moviedb/grade?movieId=108768&type=netizen&page=3


아하! 맨 마지막 숫자가 바뀌네요!

다시 첫번째 페이지로 들어가보면 

http://movie.daum.net/moviedb/grade?movieId=108768&type=netizen&page=1

로 되어 있는 것을 알 수 있습니다.


url 구조와 반복 규칙을 이제 명확히 알 것 같네요!


이제 코딩을 해봅시다.



'프로그래밍 이것저것' 카테고리의 다른 글

파이썬 웹 크롤링 하기 2 : 댓글 긁어오기  (0) 2017.08.20
향상된 for문  (0) 2017.08.03

자바5인가.. 부터 사용할 수 있게 되었다고 하네요.


일반적인 FOR문은 아래와 같습니다.
for( 초기값; 조건식; 증감식)

향상된 FOR문은 아래와 같습니다.
for( 타입 변수선언 : 배열이나 컬렉션) { //선언한 변수에 배열이나 컬렉션의 값이 차례로 대입되어 반복함 }

사용 예시를 들어볼까요.

기존 배열의 내용을 출력할 때

1
2
3
for(int i=0; num.length; i++) 
{
     System.out.println(num[i]);
}
cs

라고 해야 했는데요,


향상된 For문으로 바꾸어 보면,

1
2
3
4
for(int i : num) 
    {
        System.out.println(i);
    }
cs

라고 할 수 있습니다.

훨신 더 간결하고 직관적이네요!!

+ Recent posts