首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Beautifulsoup抓取视频描述

用Beautifulsoup抓取视频描述
EN

Stack Overflow用户
提问于 2021-09-08 10:53:50
回答 1查看 35关注 0票数 0

我试着在youtube上抓取视频描述中的链接,但列表总是返回空。

我已经尝试从我抓取的位置更改标记,但输出和错误消息都没有更改。

下面是我使用的代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests

source = requests.get('https://www.youtube.com/watch?v=gqUqGaXipe8').text

soup = BeautifulSoup(source, 'lxml')

link = [i['href'] for i in soup.findAll('a', class_='yt-simple-endpoint style-scope yt-formatted-string', href=True)]

print(link)

哪里出了问题,我该如何解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-08 11:33:26

在本例中,requests不会返回页面的整个HTML结构。如果Youtube使用JavaScript填充数据,我们必须通过真正的浏览器运行它来获取页面的源代码,比如使用Selenium库的Chrome Headless。下面是一般的解决方案:

代码语言:javascript
复制
from bs4 import BeautifulSoup
from selenium import webdriver
import time

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options = options)
url = "https://www.youtube.com/watch?v=Oh1nqnZAKxw"
driver.get(url)
time.sleep(2)
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()


link = [i['href'] for i in soup.select('div#meta div#description [href]')]
print(link)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69101729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档