• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

다음 영화 댓글 가져오기 크롤러 관련 질문

20.07.06 16:11 작성 조회수 218

0

안녕하세요,

제가 개인적인 실습 목적으로 아래와 같이 다음 사이트의 영화 메뉴에 있는 영화 댓글을 가져오는 크롤러를 작성했는데, 오류가 발생하여 문의 드립니다.

원래 의도는 인자로 'page_num'을 설정하여 숫자를 대입하면, 해당 숫자의 페이지까지 입력된 모든 댓글을 크롤링하는 것이었는데, 아래와 같이 코딩하고 보니 'page_num' 에 입력된 숫자의 페이지에만 있는 댓글을 가져오고 있습니다. (movie_id는 해당 영화 소개 페이지의 url에 있는 id 임)  더 이상 댓글이 없으면, break 함수를 이용하여 크롤링을 종료 시키게 되어 있습니다.

아마도 for 중첩문을 잘 못 작성한 것같은데, 무엇이 잘 못된 것인지 모르겠습니다. 도와 주시면 감사하겠습니다.

def get_daum_news_comment(movie_id, page_num):

    

    url_template = 'https://movie.daum.net/moviedb/grade?movieId={}&type=netizen&page={}'    

    url = url_template.format(movie_id, page_num)

    resp = requests.get(url)

    soup = BeautifulSoup(resp.text)  

    

    comments = ''

    for page_num in range(1, page_num+1):     

        for p in soup.find_all('p', class_='desc_review'):

            comments += p.get_text().strip() 

            

            if not page_num:

                break             

    return print(comments) 

답변 1

답변을 작성해보세요.

0

안녕하세요.

우선 이 부분은 양해를 부탁드립니다. 각자 원하시는 크롤링 코드를 작성하시다보면, 이슈가 있을 수 잇는데요. ㅎㅎ 그런 코드를 정확히 봐드리려면, 결국 저도 동일한 크롤링을 해봐야하고, 그러면 해당 크롤링 코드를 작성해야 해서요. 물리적으로도 무리가 있고, 평생 학습이란 것을 생각해본다면, 평생 원하는 크롤링이 잘 안되면, 제가 다 봐드려야 한다는 오해 아닌 오해를 살 수도 있어서요. 이 부분은 시간적으로도 현실적으로드 무리가 있는 부분이라 이해를 부탁드립니다. 

가볍게만 봐서는 코드만 봐서는 어떤 오류가 발생하는지 알기가 쉽지 않습니다. 이미 위에서 특정 페이지를 크롤링하신 듯 한데, 다음 부분은 안쓰셔도 되는 것 아닌가 생각이 드네요.

for page_num in range(1, page_num+1):  

감사합니다.