반응형

 

설명보다는 간단히 URL과 class를 구하는 방법을 설명하고, 공개한 코드에 바로 적용할 수 있도록 작성 했습니다.

 

  • 파이썬 네이버 영화 평점 크롤링 (네티즌 평점 상위 5개 크롤링)

우선 URL을 구해야 하는데, 아래와 같이 저가 구하려 했던 네티즌 평점은 HTML안에 HTML이 들어가는 방식으로 되어 있었습니다. (이런 이유로 들어간 후 바로 URL을 입력하면 네티즌 평점이 아닌, 전문가 평점이 출력 되었습니다.)

 

크롬의 경우 아래와 같이 간단히 주소를 구할 수 있는데, 평점에서 우클릭하여 프레임 소스 보기를 선택 합니다.

 

위에서 프레임 소스 보기를 눌렀다면 아래와 같은 창이 나오는데, URL창에서 'view-source:'을 제외하고 https://~ 이후의 주소를 복사+붙여넣기하여 아래 소스 코드의 requests.get(URL) 부분에 넣어주시면 됩니다.

 

크롬이라면 F12를 눌러서 개발자창을 열으신 후 아래 이미지와 같이 우측 상단의 마우스 모양 클릭 → 댓글 클릭하여 해당 댓글부분의 HTML에서 class를 확인 합니다.

 

class가 확인 되었으면 soup.select() 부분에 아래와 같이 작성 해줍니다.

저의 경우 가장 위에있는 5가지만 넣기위해 작성했으며, 이렇게 하지 않을 경우 주석처리되어 있는 코드를 사용하시면 됩니다. 아래의 replace들은 문자열을 좀 간결하게 정리하기 위해 사용되었습니다.

import requests
from bs4 import BeautifulSoup

req = requests.get("https://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=190568&type=after&isActualPointWriteExecute=false&isMileageSubscriptionAlready=false&isMileageSubscriptionReject=false&page=1")
html = req.text

soup = BeautifulSoup(html, 'html.parser')

for item, i in zip(soup.select(".score_result .score_reple"), range(1,6)):
    result = item.text
    result = result.replace('\t','')
    result = result.replace('\r','')
    result = result.replace('\n','')
    print(result)
    
    
#for item in soup.select(".score_result .score_reple"):
#    result = item.text
#    result = result.replace('\t','')
#    result = result.replace('\r','')
#    result = result.replace('\n','')
#    print(result)

 

 

반응형

+ Recent posts