Note
bs4와 selenium을 활용한 video url 수집 본문
728x90
url = input('채널 URL을 입력해주세요 : ',) # 첫 화면 URL
driver = Chrome()
driver.implicitly_wait(3)
driver.get(url)
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="tabsContent"]/tp-yt-paper-tab[2]/div').click() # 채널 동영상 탭
body = driver.find_element_by_tag_name('body')
# 스크롤 다운
num_of_pagedowns = 10
while num_of_pagedowns:
body.send_keys(Keys.PAGE_DOWN)
time.sleep(3)
num_of_pagedowns -= 1
html0 = driver.page_source # 현재 페이지 html
html = bs(html0,'html.parser')
video_url_list = []
for i in tqdm(range(0,120)): # 동영상 수 범위 설정
video_url = html.find_all('a', {'id' : 'video-title'})[i]['href']
video_url_list.append(video_url)
data = pd.DataFrame()
data['video_url'] = video_url_list
data.drop_duplicates(['video_url'], inplace = True) # 중복 수집되는 아이디 제거
selenium으로 브라우저를 열고 스크롤 다운과 bs로 데이터 수집하기.
video url 중복 수집되는 경우가 있는데 원인 파악을 못해서 데이터 프레임으로 만든 후 중복 제거.
'etc > Crawling' 카테고리의 다른 글
유튜브 채널 검색에 따른 채널 이름, 구독자 수, 영상 수 가져오기 (0) | 2022.05.02 |
---|---|
유튜브 api 활용 채널 정보 가져오기 (0) | 2022.04.11 |
video url을 통한 비디오 정보 수집 (0) | 2022.04.08 |
유튜브 댓글 크롤링 (0) | 2021.06.09 |
웹 크롤링 - 네이버 뉴스 (0) | 2021.05.03 |
Comments