일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- convert to shp
- 웹페이지
- to shp
- clustering
- 플라스크
- Chat-GPT
- Selenium
- string to list
- colab runtime
- 크롤링
- 2164 카드2
- 인스타그램
- plotly dash
- NLP
- Crawling
- kmeans
- geoDataFrame
- 파이썬
- 해시태그
- 괄호 문제
- Python
- flask
- Merge Repositories
- geopandas
- python buildpacks
- 백준
- 혁신성장부문
- 코랩 런타임
- 알고리즘
- 셀레니움
Archives
- Today
- Total
코딩코딩코딩
유튜브(Youtube) 크롤링 - selenium - 1 본문
셀레니움을 사용해서 Youtube 검색창 - 필터 설정
# Import Library
import requests
from bs4 import BeautifulSoup
import time
import urllib.request
from selenium.webdriver import Chrome
import re
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import datetime as dt
필요한 라이브러리를 불러옵니다.
셀레니움을 사용하기 위해서는 최신 크롬버전, chromedriver.exe 파일이 필요합니다.
path = "C:\\Users\\Rectworks\\PycharmProjects\\chromedriver\\chromedriver.exe"
delay = 3
browser = Chrome(path)
browser.implicitly_wait(delay)
start_url = "https://www.youtube.com"
browser.get(start_url)
# browser.maximize_window()
browser.find_elements_by_xpath('//*[@id="search-input"]')[0].click()
browser.find_element_by_xpath('//*[@id="search-form"]/div/div/div/div[2]/input').send_keys("Keyword")
browser.find_element_by_xpath('//*[@id="search-form"]/div/div/div/div[2]/input').send_keys(Keys.RETURN)
위 코드를 통해서 Keyword 로 검색해서 엔터를 누르는 것까지 자동으로 실행됩니다.
이후 필터 버튼을 눌러 기준을 설정하려고 하는데 '오늘' 기준, '조회수' 기준으로 설정해보도록 하겠습니ㅏㄷ.
# 필터 기준 - 업로드 날짜 - 오늘
upload_date = browser.find_element_by_xpath('//*[@id="collapse-content"]/ytd-search-filter-group-renderer[1]')
click_list_1 = upload_date.find_elements_by_id("endpoint")
click_list_1[1].click()
# 필터 창이 내려가는 속도에 맞추기 위해서 임의로 sleep한 후에 버튼 클릭
time.sleep(delay)
browser.find_element_by_xpath('//*[@id="container"]/ytd-toggle-button-renderer/a').click()
# 필터 기준 - 정렬 기준 - 조회수
sorting_std = browser.find_element_by_xpath('//*[@id="collapse-content"]/ytd-search-filter-group-renderer[5]')
click_list_5 = sorting_std.find_elements_by_id("endpoint")
click_list_5[2].click()
필터 버튼을 누르고 기준을 필터링 기준을 선택하면 자동으로 필터 창이 닫힙니다.
여기에서 time sleep을 해준 후에 다시 필터 버튼을 클릭하는 방식으로 작동합니다.
다음 글에서는 필터링된 동영상들의 영상길이, 조회수, 좋아요 등을 가져오는 작업을 해보도록 하겠습니다.
'파이썬 > 텍스트마이닝' 카테고리의 다른 글
유튜브(Youtube) 크롤링 - selenium - 3 (5) | 2020.08.13 |
---|---|
유튜브(Youtube) 크롤링 - selenium - 2 (1) | 2020.08.12 |
인스타그램 해시태그 크롤링 및 분석 - 5 (5) | 2020.07.29 |
인스타그램 해시태그 크롤링 및 분석 - 4 (5) | 2020.07.27 |
인스타그램 해시태그 크롤링 및 분석 - 3 (1) | 2020.07.24 |
Comments