• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

수집 갯수 부족 오류 문의

24.02.04 06:25 작성 24.02.05 16:57 수정 조회수 141

0

선생님에게서 파이썬을 처음 배우고, 덕분에 크롤링을 체험할 수 있었습니다.

항상 감사한 마음으로 수강하고 있습니다.

조악하지만, 아래와 같은 코드로 유튜브 크롤링 코드를 만들어 보았는데 예를들어,

https://www.youtube.com/@user-rr5gv5ov5j

와 같은 채널의 동영상은 대략 88개인데 최종적으로 수집되는 데이터는 11개 동영상에 한정되어 수집됩니다.

제가 어느 부분을 놓치고 있는지 감을 잡기가 어렵네요.

또한 개선해야할 부분이 있다면 검토 부탁드립니다.

바쁘시더라도 검토를 부탁드리며 작성해본 코드를 첨부합니다. ^^

except Exception as e:
    print("스크롤 중 에러가 발생하였습니다.: ", e)

all_titles = soup.find_all('yt-formatted-string', class_='style-scope ytd-rich-grid-media')
all_views = soup.find_all('span', class_='style-scope ytd-thumbnail-overlay-time-status-renderer')

titles = [title.string for title in all_titles]
views = [view.string.strip() for view in all_views]

답변 1

답변을 작성해보세요.

1

안녕하세요!

스타트코딩입니다.

 

우선 저에게 파이썬을 처음배웠는데 벌써 이정도 수준의 코드를 작성하신다니

정말 대단하시네요... 리스트내포와 삼항연산자까지 사용하시는게 인상 깊습니다 ㅎㅎ

 

코드 전체를 파악해야해서 테스트하는데 시간이 좀 걸렸네요.

오류가 나는 부분 확인해 드리겠습니다.

 

except Exception as e:
    print("스크롤 중 에러가 발생하였습니다.: ", e)

all_titles = soup.find_all('yt-formatted-string', class_='style-scope ytd-rich-grid-media')
all_views = soup.find_all('span', class_='style-scope ytd-thumbnail-overlay-time-status-renderer')

titles = [title.string for title in all_titles]
views = [view.string.strip() for view in all_views]

alll_titles 추출하는 부분이 이상해보입니다.

스크롤을 내리고 page_source를 받아와야 하는데 그 부분이 생략된거 같아요.

 

except Exception as e:
    print("스크롤 중 에러가 발생하였습니다.: ", e)

page = driver.page_source
soup = BeautifulSoup(page, 'lxml')
all_titles = soup.find_all('yt-formatted-string', class_='style-scope ytd-rich-grid-media')
all_views = soup.find_all('span', class_='style-scope ytd-thumbnail-overlay-time-status-renderer')

titles = [title.string for title in all_titles]
views = [view.string.strip() for view in all_views]

이런식으로 수정해 주시고

추출할때도 soup.find_all('yt-formatted-string', class_='style-scope ytd-rich-grid-media') 이렇게 할경우 150개가 나옵니다. 75개가 나와야해요. 나머지는 쇼츠영상

id 값이 video-title인 것들을 추출하면 75개가 나옵니다.

 

개선할점은 코드 작성시 적절하게 주석을 다는 습관을 들이시는게 좋습니다.

코드 길이가 길어지고 함수 사용하고 그러면

굉장히 헷갈려지거든요. ㅎㅎ

 

잘하고 계십니다!! 화이팅

 

sarang1061님의 프로필

sarang1061

2024.02.05

바쁘실텐데 검토해주셔서 감사합니다.

귀찮더라도 주석을 다는 습관을 꼭 익히도록 하겠습니다.

주위에서는 파이썬 어렵다고들 하는데 저는 선생님 덕분에 너무 재밌게 즐기고 있습니다.

감사합니다!!