Note

bs4와 selenium을 활용한 video url 수집 본문

etc/Crawling

bs4와 selenium을 활용한 video url 수집

알 수 없는 사용자 2022. 4. 7. 23:40
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 중복 수집되는 경우가 있는데 원인 파악을 못해서 데이터 프레임으로 만든 후 중복 제거.

Comments