我如何获得代码嵌入从YouTube使用的YouTube视频3.6

我如何获得代码嵌入从YouTube使用的YouTube视频3.6

问题描述:

我的目的是为输入中搜索的视频制作一个文件所有代码波纹管的作品,但我找不到如何搜索HTML代码或写它到一个html文件)。最终目标是让YouTube不一致的机器人在本地工作。我需要提取用于嵌入视频的代码,而无需手动右键单击视频。 我会很感激那些谁帮忙:)我如何获得代码嵌入从YouTube使用的YouTube视频3.6

import bs4 as bs 

import urllib.request 

import os 

basic = 'https://www.youtube.com/' 

search = '' 

x = str(input('Song name: ')) 

y = '' 

i = 0 

x = x.split(' ') 

y = x[0] 

for i in range(1,len(x)): 

    y = y + '+' + str(x[i]) 


searchQ = 'https://www.youtube.com/results?search_query='+y 


sauce = urllib.request.urlopen(searchQ).read() 
soup = bs.BeautifulSoup(sauce,'lxml') 

nav = soup.nav 

for url in soup.find_all('a'): 
    z = (url.get('href')) 
    i += 1 
    if i > 10: 
     if z[0] == '/' and z[1] == 'w': 
      search = basic+z 
      print(search) 
      break 
sauce = urllib.request.urlopen(search).read() 
soup = bs.BeautifulSoup(sauce,'lxml') 
page = urllib.request.urlopen(search) 
html = page.read() 
soup = bs.BeautifulSoup(html,'lxml') 

os.remove('my vid.html') 
f = open('my vid.html','w') 
#f.write(str(html)) 
f.close 


path = r'C:\Users\name\Desktop\my vid.html' 
os.startfile(path) 

我用硒来解决这个问题。我还删除了请求库的所有用法。

我的代码所做的是基本上进入任何YouTube视频并复制嵌入代码并使用硒将代码输出到屏幕。

然后,您可以随后将嵌入代码以您想要的格式写入任何文件。那取决于你。

另请注意,我没有触及任何与搜索视频或选择视频相关的内容。

代码:

import clipboard 
import bs4 as bs 
from selenium import webdriver 
from selenium.webdriver import ActionChains 

basic = 'https://www.youtube.com/' 
search = '' 
x = str(input('Song name: ')) 
y = '' 
i = 0 
x = x.split(' ') 
y = x[0] 

for i in range(1,len(x)): 
    y = y + '+' + str(x[i]) 

searchQ = 'https://www.youtube.com/results?search_query=' + y 
driver = webdriver.Chrome() 
driver.get(searchQ) 
driver.maximize_window() 
soup = bs.BeautifulSoup(driver.page_source, 'lxml') 
nav = soup.nav 

for url in soup.find_all('a'): 
    z = (url.get('href')) 
    i += 1 
    if i > 10: 
     if z[0] == '/' and z[1] == 'w': 
      search = basic+z 
      print(search) 
      break 

driver.get(search) 
soup = bs.BeautifulSoup(driver.page_source,'lxml') 

actionChains = ActionChains(driver) 
video = driver.find_element_by_css_selector('#movie_player > div.html5-video-container > video') 
actionChains.context_click(video).perform() 
embed = driver.find_element_by_xpath('//*[@id="null"]/div[3]/div[1]').click() 
text = clipboard.paste() 
print(text) 

输入:

fire squad 

输出:

Song name: fire squad 
https://www.youtube.com//watch?v=-MGB_G_ZjMo 
<iframe width="854" height="480" src="https://www.youtube.com/embed/-MGB_G_ZjMo" frameborder="0" allowfullscreen></iframe> 
+0

非常感谢您为安装模块和运行代码后,但是帮助我得到一个巨大的错误以selenium.common.exceptions.WebDriverException结尾:消息:'chromedriver'可执行文件需要位于PATH中。 –

+0

嗨,吕克,你需要从这个[链接](https://chromedriver.storage.googleapis.com/2.32/chromedriver_win32.zip)下载chromedriver.exe,然后你需要将可执行文件添加到你的项目中目录。 – Ali