• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

댓글을 크롤링해보는데 잘 안되서 문의드려봅니다.

21.01.27 16:51 작성 조회수 207

0

import requests
from bs4 import BeautifulSoup

res=requests.get('https://comic.naver.com/index.nhn')  
soup=BeautifulSoup(res.content, 'html.parser')
data=soup.select('#realTimeRankFavorite > li > a')
for index,item in enumerate (data):
       print(index+1, "인기웹툰:", item.get_text())

이렇게 코드를 짜서 인기웹툰 순위 크롤링은 되었는데요. 


import requests
from bs4 import BeautifulSoup

res=requests.get('https://comic.naver.com/webtoon/detail.nhn?titleId=743031&no=34&weekday=mon')  
soup=BeautifulSoup(res.content, 'html.parser')
data=soup.select('ul #u_cbox_list')
for item in data:
     print(item.get_text())  #구현시에 아무것도 안뜨는데 혹시 어떤 부분을 수정해야 하는걸까요?

웹툰에 달리는 댓글들을 크롤링해보고 싶은데 검색에 들어가서 copy해서 찾아 넣었는데 실행을 하면 에러코드도 아니고 아예 아무것도 안떠서요. 
어디가 잘못된건지.. 혹은 댓글 크롤링은 아예 다른 접근이 필요한건지 문의드려봅니다. 

답변 1

답변을 작성해보세요.

0

안녕하세요. 이 부분은 새소식에서도 말씀을 드린 부분이라, 다음 글과 함께 양해를 부탁드립니다.

간략히만 말씀드리면, 보통 아무것도 안뜬다면, select 구문의 css selector 가 잘못되었다고 보셔도 좋고, 동적 웹페이지일 수 있습니다. 동적 웹페이지는 웹페이지가 동적으로 만들어지는 페이지이고요. 해당 페이지가 동적 페이지인지 확인하려면, 크롬에서 웹페이지를 오픈한 후 오른쪽 클릭 후, 소스 보기를 선택해서, 원하시는 태그가 실제로 소스에 있는지 확인해보시면 좋습니다. 소스에는 없는데 표시는 된다면, 동적으로 생성되는 부분이라고 보셔도 좋고요. 이런 케이스는 크롤링 중급 기술인 selenium 으로 해야 하는데, 난이도가 있어서요. 이 부분도 크롤링 중급 강의로 제공하고 있기는 해요.

마지막으로 새소식에 기재한 부분으로 이해를 부탁드립니다.

그동안 정말 다양하고 많은 분들께서 수강을 해주고 계시는데요. 그러다보니, 질문/답변 란에 동일한 이야기를 드릴 때가 많아서 공유를 드려요.

질문/답변 란에, 각자 원하시는 크롤링 코드 관련 문의를 해주시는 경우가 꽤 있었는데요. 그 때마다, 가급적 배려를 드리는 차원으로, 가볍게 볼 수 있는 부분에 대해서만 답변을 드리기는 했습니다. 하지만, 해당 질문/답변 란은 본 강의 영상과 관련한 질문이 있을 때를 답변해드리는 것이 기본 취지인 것 같아요. 

온라인 수학 강의를 수강하면서, 강의에 나온 수학공식을 사용하는 강의 외에 각자 풀고 있는 수학 문제를 질문하고, 이를 풀어드리는 강의는 본 적이 없는데요. 마찬가지로 본 강의를 수강하시면서, 각자의 코드나, 각자 원하시는 크롤링 코드를 작성해드리거나, 함께 풀어나가는 것은 현실적으로 큰 무리가 있습니다.

더군다나 본 강의가 평생 수강이 가능하기 때문에, 이를 지원해드릴 경우, 본 강의를 들으면 내가 원하는 크롤링 코드는 모두 해결해드려야 하는 오해 아닌 오해도 생길 수 있고요. 심지어, 저도 실제 코드를 작성해봐야 해서, 코드를 작성하는 과정이 일종의 외주 프로그램을 작성하는 업무와 동일하게 되고, 이를 처리하느라 답변이 늦어지면, 다른 답변이 늦어질 수도 있어서, 다른 수강생분들께도 문제가 될 수 있을 것 같습니다.

그래서, 질문/답변란에 문의를 주실 때에는 각자의 원하시는 크롤링 코드 관련 문의는 안해주시면 감사하겠습니다. 이 부분 꼭 양해를 부탁드립니다.

감사합니다.