url ='https://movie.naver.com/movie/bi/mi/pointWriteFormList.naver?code=81888&type=after&i[%E2%80%A6]geSubscriptionAlready=false&isMileageSubscriptionReject=false'
# 서버에게 브라우저로 접속했다라는 것을 인지시키기 위한 헤더
header = {
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
res = req.get(url, headers=header).text
html = bs(res, 'lxml')
html.select('div.score_reple > p > span')
# 관람객이라는 단어 빼기
reviews = html.select('div.score_reple > p > span')
for review in reviews:
#'관람객'을 제외한 리뷰 출력
if review.text != '관람객':
print(review.text.strip())
for pageNum in range(5):
url = 'https://movie.naver.com/movie/bi/mi/pointWriteFormList.naver?code=81888&type=after&i[%E2%80%A6]geSubscriptionAlready=false&isMileageSubscriptionReject=false'
header = {
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
res = req.get(url, headers=header, params={'page' : pageNum}).text
html = bs(res, 'lxml')
reviews = html.select('div.score_reple > p > span')
for review in reviews:
#'관람객'을 제외한 리뷰 출력
if review.text != '관람객':
print(review.text.strip())
print('-'*30, (pageNum+1), '페이지', '-'*30)
time.sleep(1)
import requests as req
import pandas as pd
import time
from bs4 import BeautifulSoup as bs
# 로직이 실행되는 진행률을 프로그래스바로 출력해주는 라이브러리
from tqdm.notebook import tqdm
url ='https://movie.naver.com/movie/bi/mi/pointWriteFormList.naver?code=81888&type=after&i[%E2%80%A6]geSubscriptionAlready=false&isMileageSubscriptionReject=false'
# 서버에게 브라우저로 접속했다라는 것을 인지시키기 위한 헤더
header = {
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
res = req.get(url, headers=header).text
html = bs(res, 'lxml')
strPageNum = html.select_one('strong > em').text
print(strPageNum)
# 13,195 > 1320 으로 변환하기
# 1. strPageNum 값에서 ','를 '' 으로 변환(13,195 -> 13195)
strPageNum = strPageNum.replace(',', '')
# 2. strPageNum을 정수로 변환(int()활용)
intPageNum = int(strPageNum)
# 3. 정수데이터의 몫 구하기 -> 페이지 수 (// 활용)
totalPage = intPageNum//10
# 4. 정수데이터의 나머지를 구하기(% 활용)
# 5. 나머지가 0 이상일 경우 페이지 수에 + 1
if intPageNum%10 > 0:
totalPage += 1
print('총 페이지 수: ', totalPage)
for i in tqdm(range(100)):
print(i, end=' ')
# 파일 저장 및 읽는 함수
f = open('reviews.txt', 'w') # 파일이 없는 경우 자동으로 파일 생성, 파일이 있는 경우 존재하는 파일 열기
f.write('Hello World!') # 그 파일을 기록을 하고
f.close() # 파일을 저장한다
# 파일 객체 생성
f = open('reviews.txt', 'w')
for pageNum in tqdm(range(1, totalPage+1)):
url = 'https://movie.naver.com/movie/bi/mi/pointWriteFormList.naver?code=81888&type=after&i[%E2%80%A6]geSubscriptionAlready=false&isMileageSubscriptionReject=false'
header = {
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
res = req.get(url, headers=header, params={'page' : pageNum}).text
html = bs(res, 'lxml')
reviews = html.select('div.score_reple > p > span')
# 영화 리뷰 페이지별로 구분하여 출력
for review in reviews:
#'관람객'을 제외한 리뷰 출력
if review.text != '관람객':
f.write(review.text.strip())
# 1초 뒤에 실행
time.sleep(1)
# 파일 객체 종료
f.close()
# 파일 객체 생성
f = open('reviews.txt', 'r')
text = f.readline()
f.close()
text
728x90
반응형
'크롤링' 카테고리의 다른 글
크롤링_Selenium (0) | 2022.06.30 |
---|---|
크롤링_워드클라우드 그리기 (0) | 2022.06.30 |
크롤링_영화 이름 및 평점 수집(실습) (0) | 2022.06.28 |
크롤링_멜론 음원 차트 수집(실습) (0) | 2022.06.27 |
크롤링_네이버 뉴스 데이터 수집(실습) (0) | 2022.06.27 |