Xiǎ*_*oko 1 python youtube-api youtube-data-api
我想使用 Python 从特定的 YouTube 频道获取视频 URL 列表。
首先,我编写了以下代码。
import os
import time
import requests
import pandas as pd
API_KEY = os.environ['API_KEY']
CHANNEL_ID = 'your_searching_channel_id'
base_url = 'https://www.googleapis.com/youtube/v3'
url = base_url + '/search?key=%s&channelId=%s&part=snippet,id&order=date&maxResults=50'
infos = []
Run Code Online (Sandbox Code Playgroud)
但我不知道下一步。
我阅读了 YouTube API HELP,但我无法理解如何构建程序。
逻辑 ->
导入必要的库。
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
Run Code Online (Sandbox Code Playgroud)
使用硒。 我正在选择 Chrome 驱动程序。确保您的 chromedriver 位于您运行脚本的同一目录中。
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)
提供 Youtube 频道的网址。
url = input("Enter Youtube Channel URL : ")
Run Code Online (Sandbox Code Playgroud)
转到视频部分。
driver.get(url+"/videos")
Run Code Online (Sandbox Code Playgroud)
向下滚动到页面末尾。 因为页面在向下滚动时加载,所以我们需要注意这一点。
ht=driver.execute_script("return document.documentElement.scrollHeight;")
while True:
prev_ht=driver.execute_script("return document.documentElement.scrollHeight;")
driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
time.sleep(2)
ht=driver.execute_script("return document.documentElement.scrollHeight;")
if prev_ht==ht:
break
Run Code Online (Sandbox Code Playgroud)
查找所有视频的链接。
links=driver.find_elements_by_xpath('//*[@id="video-title"]')
for link in links:
print(link.get_attribute("href"))
Run Code Online (Sandbox Code Playgroud)
就是这样。
缺点 - 需要网络驱动程序。比直接从 Youtube API 获取结果要慢。
| 归档时间: |
|
| 查看次数: |
3625 次 |
| 最近记录: |