【问题标题】:Video description scraping with Beautifulsoup用 Beautifulsoup 抓取视频描述
【发布时间】:2021-09-08 10:53:50
【问题描述】:

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

我尝试更改要抓取的标签,但输出和错误消息都没有变化。

这是我正在使用的代码:

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)

出了什么问题,我该如何解决?

【问题讨论】:

    标签: python web-scraping beautifulsoup youtube


    【解决方案1】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      相关资源
      最近更新 更多