목록크롤링 (9)
Note
유튜브 제목 옆 줄 끝에 점 세개를 누르면 스크립트 표시가 있다. 스크립트는 유튜브에서 자동적으로 생성해주는 자막이 표시가 되어있다. 한국어 자막은 성능이 좋지 않지만 영어 자막은 꽤 잘 잡는 것으로 알고 있다. import pandas as pd import json import re import time from tqdm import tqdm import pymysql from datetime import date from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.ke..
# 채널 주소 입력 url = "https://www.youtube.com/channel/{}/playlists".format(channel) driver = Chrome() driver.implicitly_wait(3) driver.get(url) driver.maximize_window() body = driver.find_element_by_tag_name('body') # 페이지 밑으로 내리기 num_of_pagedowns = 5 while num_of_pagedowns: body.send_keys(Keys.PAGE_DOWN) time.sleep(2) num_of_pagedowns -= 1 html0 = driver.page_source html = bs(html0,'html.parser') # ..
기존에 잘 돌아가던 크롤링 코드에서 새로운 오류가 발생했다. requests.exceptions.SSLError 구글링을 검색해 본 결과 신뢰하지 않은 SSL 인증서가 설치되어 있는 https 사이트 접속 및 결과에서 발생하는 오류. response = requests.get(url,verify=False) 이와 같은 해결법으로 해결할 수 있었다.
# 라이브러리 호출 from requests_html import HTMLSession,AsyncHTMLSession #!pip install requests_html from bs4 import BeautifulSoup as bs # importing BeautifulSoup import nest_asyncio #!pip install nest_asyncio import pandas as pd import json import re import time from tqdm import tqdm import pymysql from sqlalchemy import create_engine pymysql.install_as_MySQLdb() import MySQLdb import numpy as np impo..
video_results = {} cnt = 0 for video_id in tqdm(array_video_id): #Video_ID 목록 if(cnt % 9 == 2): time.sleep(3) cnt += 1 result = {} video_url = "https://www.youtube.com"+video_id response = session.get(video_url,headers = headers) #URL 통신 if(response.status_code == 429): print(response) soup = bs(response.text, "html.parser") try: # 예외 발생하면 가져오지 않음 meta = soup.find_all("meta") result['video_id'] ..