import requests from bs4 import BeautifulSoup class Reple: def __init__(self, score, review): self.score = score self.review = review # def setScore(self, score): # self.score = score # def setReview(self, review): # self.review = review class Movie: def __init__(self, rank, title): self.rank = rank self.title = title self.reples = [] # def setRank(self, rank): # # def setTitle(self, title): def setReples(self, reples): self.reples = reples class Naver: def naverMovieReple(self, url): r=[] response1 = requests.get('https://movie.naver.com' + url) html1 = response1.text soup1 = BeautifulSoup(html1, 'html.parser') for tag1 in soup1.select('div[class="score_result"] ul li'): score = tag1.select_one('em').text # print("평점 : " + score) review = tag1.select_one('div[class="score_reple"] p').text review = review.replace('\r', "").replace('\t', "").replace('\n', "") # print("리뷰 : " + review) # r.append((score, review)) # d[키] = 값 d=Reple(score,review) # d["score"] = score # d["review"] = review r.append(d) # [ { score : ~~, review : ~ }, { score : ~~, review : ~ }] return r def naverMovieRanking(self): response = requests.get("https://movie.naver.com/movie/sdb/rank/rmovie.nhn") html = response.text soup = BeautifulSoup(html, 'html.parser') ranking = 1 movieList = [] for tag in soup.select('div[class="tit3"] a'): # print(str(ranking)+"위 :"+ tag.text) d = Movie(ranking, tag.text) # d.setTitle(tag.text) # d.setRank(ranking) ranking += 1 url = tag.get('href') ll=self.naverMovieReple(url) # d = Movie(ranking, tag.text. ll) # # d.setReples(ll) movieList.append(d) return movieList if __name__ == "__main__": rr=Naver() for b in rr.naverMovieRanking(): print(b.ranking) print(b.title) for c in b.reples: print(c.score) print(c.review)