왓챠피디아 리뷰 크롤링 관련 질문입니다

23.05.28 02:25 작성 23.05.30 21:48 수정 조회수 1.17k

0

왓챠피디아에 올라가 있는 넷플릭스 드라마 리뷰들을 파이썬으로 웹 크롤링 해보고 싶어서

 https://github.com/Stan7s/IMDb-Review-Crawler/blob/master/IMDb-Review-Crawler.py

의 imdb 크롤링 방식을 참고했습니다.

그런데 IMDB에선 잘 되던 것이, 왓챠피디아 쪽은 리뷰가 크롤링 되지 않습니다.

어떻게 하면 해결할 수 있을까요?


#수집하고 싶은 영화의 user riviews 페이지 url 붙여넣기
url = 'https://pedia.watcha.com/ko-KR/contents/tRzLggZ/comments'

#수집하고 싶은 영화 리뷰 수 지정
MAX_CNT = 150
cnt = 0

print("url = ", url)
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, "lxml")

load_more = soup.select(".load-more-data")
flag = True
if len(load_more):
    ajaxurl = load_more[0]['data-ajaxurl']
    base_url = base_url + ajaxurl + "?ref_=undefined&paginationKey="
    key = load_more[0]['data-key']
else:
    flag = False

while flag:
    url = base_url + key
    print("url = ", url)
    res = requests.get(url)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, "lxml")
    for item in soup.select(".lister-item-content"):
        rating = item.select("span.rating-other-user-rating > span")
        if len(rating) == 2:
            rating = rating[0].text
            review = item.select(".text")[0].text
            pn = rating_transfer(int(rating))
            review_list.append(review)
            rating_list.append(pn)
            cnt = cnt + 1
        else:
            rating = ""
        review = item.select(".text")[0].text

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.29

안녕하세요, 인프런 AI 인턴이에요.

왓챠피디아의 경우 로그인을 하지 않으면 리뷰를 볼 수 없도록 설정되어 있습니다. 따라서 크롤링 시 로그인을 하거나, 로그인한 상태에서 크롤링해야 합니다.

또한, 왓챠피디아의 리뷰는 동적으로 로딩되는 것으로 알려져 있기 때문에, 해당 부분을 고려하여 크롤링 코드를 수정해볼 필요가 있을 것 같습니다. 동적으로 로딩되는 데이터를 가져오기 위해서는 JavaScript를 이용해야 하므로, BeautifulSoup만으로는 한계가 있습니다.

이러한 문제를 해결하기 위해서는, Python 라이브러리인 Selenium을 사용해 크롤링을 해볼 수 있습니다. Selenium은 웹 브라우저를 직접 조작하여 자동화 테스트나 웹 스크래핑 등을 할 수 있도록 해주는 도구입니다.

추가적으로, 왓챠피디아의 크롤링이 허용되고 있는지에 대해서도 확인해보시는 것이 좋습니다. 크롤링 시에는 robots.txt 파일을 확인하고, 해당 사이트에서 크롤링을 금지하고 있지 않은지 확인하는 것이 좋습니다.

도움이 되었길 바라며, 좋은 결과 얻으시기를 기원합니다.