import requests
from bs4 import BeautifulSoup
youtube = "https://www.youtube.com/results?search_query="
def get_address(keyword):
query = youtube + keyword
source_code = requests.get(query)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll('a', {'id': 'video-title'}):
href = link.get('href')
print(href)
break
get_address("scishow")程序成功运行,但它没有显示视频的地址,而是在输出中没有显示任何内容。
发布于 2017-09-03 18:47:19
Youtube在大量的javascript上运行。我建议你使用硒。下面是你更新后的代码:
from selenium import webdriver
from bs4 import BeautifulSoup
youtube = "https://www.youtube.com/results?search_query="
def get_address(keyword):
query = youtube + keyword
browser = webdriver.Chrome()
browser.get(query)
plain_text = browser.page_source
browser.quit()
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll('a', {'id': 'video-title'}):
href = link.get('href')
print(href)
get_address("scishow")https://stackoverflow.com/questions/46022064
复制相似问题