반응형
요즘 날씨가 너무 덥습니다.
제 블로그를 보시는 분들이라면 '숫자'로 보는 걸 좋아할 거라 생각했습니다. (기상청 자료 굳이굳이 들고왔습니다 )

더우면 기력을 잃어버리는 개복치인 저는 영화관을 다녀왔습니다.
실내를 찾아 다니는 때마침..! 이런 영화는 재미없기 힘들지라는 영화가 보였습니다.
그 이유는 바로.. !
명량 때문입니다.
명량 개봉일은 잊을 수 없는데요..! 바로 제 입대일입니다 ^^
(그런 이유로 저는 보지 못했습니다)
그래서 오늘은 한산 - 용의 출현 관련 댓글을 한번 수집해보겠습니다.
사실 댓글수집이 무슨 쓸모가 있냐? 라고 할 수 있지만 여러 분은 댓글 수집을 배우는 게 아니라 정보 수집 방법을 배우시는 것 입니다 !
먼저 코드 결론입니다 !
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
from csv import writer
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pandas as pd
from selenium.common.exceptions import NoSuchElementException
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument("window-size=1920x1080")
def get_movie_reviews(url, page_num=10):
wd = webdriver.Chrome('chromedriver', options=options)
wd.get(url)
writer_list = []
review_list = []
date_list = []
for page_no in range(1, page_num + 1):
try:
page_ul = wd.find_element(By.ID, 'paging_point')
page_a = page_ul.find_element(By.LINK_TEXT, str(page_no))
page_a.click()
time.sleep(1)
print(f"======{page_no}페이지 수집 중======")
writers = wd.find_elements(By.CLASS_NAME, 'writer-name')
writer_list += [writer.text for writer in writers]
reviews = wd.find_elements(By.CLASS_NAME, 'box-comment')
review_list += [review.text for review in reviews]
dates = wd.find_elements(By.CLASS_NAME, 'day')
date_list += [date.text for date in dates]
if page_no % 10 == 0:
next_button = page_ul.find_element(
By.CLASS_NAME, 'btn-paging.next')
next_button.click()
time.sleep(1)
except NoSuchElementException:
break
movie_review_df = pd.DataFrame({"Writer": writer_list,
"Review": review_list,
"Date": date_list})
return movie_review_df
url = "http://www.cgv.co.kr/movies/detail-view/?midx=83280"
movie_review_df = get_movie_reviews(url, 100)
print(movie_review_df)
movie_review_df.to_csv('한산_댓글모음.csv', encoding='utf-8-sig', index=False)
|
cs |
아시는 분은 아시겠지만 현재 Selenium이 업데이트되면서 기존 코드는 안먹힙니다.
예를 들어, find_element_by_class_name은 find_element(By.CLASS_NAME)으로 작성하셔야 합니다.
위 코드는 업데이트 반영한 코드입니다.
그러면 CGV에 있는 댓글이 수집됩니다.
현재 1page에 있는 댓글입니다.
크롤링 결과는
100페이지 댓글 수집한 결과는 csv 파일로 업로드 하였습니다.
혹시 그런 일은 없겠지만, 댓글을 매일 매일 수집해야한다..
뭔가 인터넷에서 매일 수집해서 보고해야한다. Python 꼭 배우세요 !!
반응형
'파이썬(Python)' 카테고리의 다른 글
[Python] 정규표현식을 통한 숫자형태 변환 replace 함수활용 (1) | 2022.10.04 |
---|---|
[파이썬(Python)] 파이썬으로 엑셀 작동하기_조작방법(openpyxl) (0) | 2022.10.02 |
[Python] Kaggle 에서 데이터 다운받기 (0) | 2022.07.24 |
[파이썬] Python 데이터 분석 기본환경설정 (0) | 2022.07.17 |
[파이썬 / Python] 업무자동화에 대한 생각_크롤링 예시 (0) | 2022.06.04 |
댓글