목록etc/Crawling (25)
Note
# 채널 주소 입력 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) 이와 같은 해결법으로 해결할 수 있었다.
video 링크 주소가 shorts로 인해 종류가 두 가지가 있다. https://www.youtube.com/watch?v= 'video id' 가 기본 주소이다. video id 자리에 id가 들어가면 영상이든 쇼츠든 잘 재생이 된다. 그러나 이전 크롤링으로 수집한 id는 쇼츠랑 영상 구분이 되어 쇼츠 영상은 제대로 수집이 되지 않았다. https://www.youtube.com/shorts/ 'video id' 이런 형태로 존재하여 split으로 뒤에 id만 추출! video = [] for i in data.video_id: try: video.append(i.split('=')[1]) except: video.append(i.split('/')[2])
channel_idlist = [] url = 'http://www.youtube.com' driver = Chrome() driver.get(url) driver.maximize_window() searchform = driver.find_element_by_id("search-form") searchform.click() time.sleep(3) try: driver.find_element_by_name('search_query').send_keys("채널 타이틀") search = driver.find_element_by_xpath('//*[@id="search-icon-legacy"]') search.click() time.sleep(3) html0 = driver.page_source html ..
# 라이브러리 호출 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..