使用 Python- 在 2024 年轻松抓取 YouTube 视频

方法, 蟒蛇, 搜索, Dec-23-20225 分钟阅读

YouTube 是仅次于谷歌的全球第二大流行引擎。它是一种视频共享服务,用户可以在这里观看、分享、喜欢、评论和上传视频。这里有视频博客、信息内容、教育视频和许多其他数据。Youtube 的一些主要功能如下:借助网络搜索

YouTube是仅次于谷歌的全球第二大流行引擎。它是一种视频共享服务,用户可以在这里观看、分享、喜欢、评论和上传视频。这里有视频博客、信息内容、教育视频和许多其他数据。Youtube 的一些主要功能包括

  • 搜索和观看视频
  • 创建个人 Youtube 频道
  • 将视频上传到您的频道
  • 订阅其他频道和用户
  • 喜欢并分享其他 Youtube 视频
  • 创建播放列表,将视频组织在一起

在网络刮擦的帮助下,您可以从 Youtube 中提取数据,并从这些数据中获得有价值的见解,从而使您的组织受益。当你学会从 Youtube 中提取数据时,重要的是要知道你想要什么类型的数据。例如,如果你想了解人们对你的作品的反应,你可以从评论部分进行用户情感分析。同样,如果你想跟踪一个视频的成功与否,你可以抓取视频性能数据。 

在学习如何抓取 Youtube 视频之前,我们先来了解一下为什么要抓取这些视频。

目录

为什么要抓取 Youtube 上的视频?

下面提到的两个主要原因可用于搜索 Youtube 数据。

  • 视频性能数据 - 为品牌发布信息视频时,跟踪受众对视频的反应非常重要。搜索特定视频的页面可以帮助您获得浏览量、喜欢数、不喜欢数、评论数、频道订阅者数等等。您需要牢记这些指标的比例。例如,一个视频可能有数百万的浏览量,但不喜欢的人数可能多于喜欢的人数。观看次数并不代表视频的受欢迎程度或质量。相反,浏览量与点赞/不点赞的比例可以作为一种情感分析。
  • 频道数据 - 搜索 Youtube 频道页面时,您将获得与播放列表、视频数量、订阅者等相关的数据。此外,搜索竞争频道的页面也非常有用,能提供更多信息,让您更好地了解自己的频道是否与竞争频道处于同一影响力水平。 
  • 实现自动化 - 强大的网络刮擦工具可自动从 Youtube 中提取数据。这可以节省时间,因为您可以收集到比人工更多的数据。 
  • 商业智能和洞察力 - 通过下载、清理和分析大量数据,您可以更好地了解竞争对手的活动,从而做出更好的商业决策。

使用 Python 搜刮 Youtube 视频

让我们看看如何使用 Selenium 和 Python 提取 Youtube 视频数据。Selenium 是一种流行的网络浏览器自动化工具。您可以使用 Selenium 轻松编写 Python 脚本,实现网络浏览器的自动化。 

Selenium 需要一个驱动程序来连接你选择的浏览器。例如,Chrome 浏览器需要一个 ChromeDriver,需要在开始刮擦之前安装。

设置 Python 环境

第 1 步 - 打开终端,使用下面的命令安装 Selenium。

$ pipinstallselenium

第 2 步 - 按照以下步骤下载 Chrome WebDriver。

第 3 步 - 您需要将驱动程序文件移至 PATH。

您必须进入下载目录并执行以下操作。

  • 解压文件。
  • 将其移至 usr/local/bin PATH。
$ cd下载
$ unzip chromedriver_linux64.zip
$ mvchromedriver /usr/local/bin/

搜索 Youtube 视频

我们将从 Youtube 搜刮特定类别的视频 ID、标题和描述。我们可以抓取的类别如下

  • 科学
  • 食品
  • 旅行
  • 制造业等

导入图书馆

您需要导入必要的库,如 Pandas 和 Selenium。

fromseleniumimportwebdriver 
importpandasaspd 
fromselenium.webdriver.common.by import By
fromselenium.webdriver.support.uiimportWebDriverWait 
fromselenium.webdriver.supportimportexpected_conditionsasEC

设置驱动程序

你必须在浏览器中打开 Youtube。输入要搜索的视频类别,然后将过滤器设置为 "视频"。您将获得与搜索相关的视频。现在,你必须复制 URL。

您需要设置驱动程序,以便从 Youtube 获取 URL 内容。

driver =webdriver.Chrome() 
driver.get("YOUR_LINK_HERE")

现在,将链接粘贴到 driver.get("YOUR_LINK_HERE") 函数中。运行单元格后,该链接将打开一个新的浏览器窗口。您需要获取该特定页面上的视频链接。您可以创建一个列表来存储这些链接。然后,您必须进入浏览器窗口并执行以下操作。

  • 右键单击页面。
  • 选择 "检查 "元素。

您必须搜索 id = "video-title" 的锚标签。右键单击 -> 复制 -> XPath。XPath 将如下所示:

//*[@id=”video-title”]

获取 Youtube 视频链接

您可以使用下面的代码获取您搜索的锚标签的 "href "属性。

user_data = driver.find_elements_by_xpath('//*[@id="video-title"]')
链接 =[]
for i inuser_data:
            links.append(i.get_attribute('href'))

print(len(links))

创建数据帧

您需要创建一个包含以下四列的数据帧。

  • 链接
  • 标题
  • 描述
  • 类别

您可以在这些列中存储不同类别视频的详细信息。

df= pd.DataFrame(columns = ['link','title','description', 'category'])

您可以使用下面的 Python 代码抓取 Youtube 视频的详细信息。

wait = WebDriverWait(驱动程序,10)
v_category ="CATEGORY_NAME"
for xin links:
            driver.get(x)
            v_id =x.strip('https://www.youtube.com/watch?v=')
            v_title = wait.until(EC.presence_of_element_located(
                           (By.CSS_SELECTOR,"h1.title yt-formatted-string")).text
            v_description = wait.until(EC.presence_of_element_located(
                                         (By.CSS_SELECTOR,"div#description 
                                         yt-formatted-string")).text
            df.loc[len(df)] = [v_id, v_title, v_description, v_category].

给你

  • wait 默认忽略 "直到 "条件下遇到的 NotFoundException 实例。 
  • 等待函数的参数如下 driver - 是要传递给预期条件的 WebDriver 实例。timeOutInSeconds - 是调用预期条件时的超时时间。
  • driver - 是要传递给预期条件的 WebDriver 实例。
  • timeOutInSeconds - 调用期望值时的超时。
  • v_category 用于存储视频类别名称。
  • 我们对上面创建的链接列表应用 for 循环。
  • driver.get(x) 执行以下功能: 逐一遍历所有链接在浏览器中打开链接以获取详细信息
  •  逐一遍历所有链接
  • 在浏览器中打开,获取详细信息
  • v_id 用于存储链路中的带状视频 ID。
  • v_title 存储通过 CSS_SELECTOR 获取的视频标题
  • 同样,v_description 通过使用 CSS_SELECTOR 来存储视频描述。

我们将按照同样的步骤处理其余类别。我们将有四个不同的数据帧,然后将它们合并为一个数据帧。这样,我们的最终数据框将包含上述所有类别视频的所需详细信息。

frames = [df_travel, df_science, df_food, df_manufacturing] (旅行、科学、食品、制造业)
df_copy = pd.concat(frames,axis=0,join='outer',join_axes=None,ignore_index=True,keys=None,levels=None,names=None,verify_integrity=False,copy=True)

使用代理抓取 Youtube 视频

您可以使用 Youtube 代理执行以下任务:

  • 抓取 - 使用代理可以正确收集视频标题、评论和任何信息。您还可以使用代理来抓取属于创作共用领域的 Youtube 视频。因此,您可以在网站上添加视频,而无需使用 Youtube 作为官方播放器。
  • 解除对 Youtube 的封锁--许多公司出于政治或其他原因,试图向公众隐藏其内容。在代理的帮助下,您可以从访问受限的地方上传和观看 Youtube 内容。代理可帮助您访问学校或工作场所封锁的 Youtube 视频。

与数据中心代理相比,住宅代理是 Youtube 的最佳代理。这是因为数据中心代理很容易被检测到,而且在使用它们时还必须面对大量的验证码。因此,为了避免 IP 屏蔽和 Captchas,住宅代理最适合用于 Youtube 自动化。

为什么使用代理服务器搜索 Youtube?

要知道,Youtube 上有数十亿条有价值的数据。您可以对这些数据进行分析,并利用它们做很多事情,比如:

  • 做出商业决策
  • 营销决策
  • 社会调查与研究

搜索 Youtube 时需要使用代理。这是因为 Youtube 采用了先进的网络安全技术,可以在您试图从一个 IP 地址购买多个项目时进行检测。为了规避检测,您必须通过多个代理服务器重新路由您的互联网流量。这样,网络流量看起来就像是来自不同的电脑。

对于使用 Youtube 机器人来增加视频浏览量、操纵 Youtube 排名算法和索要广告收入的营销人员来说,代理还起到了保护作用。

哪个是抓取 YouTube 视频的最佳代理?

ProxyScrape is one of the most popular and reliable proxy providers online. Three proxy services include dedicated datacentre proxy servers, residential proxy servers, and premium proxy servers. So, what is the best proxy to scrape YouTube videos? Before answering that questions, it is best to see the features of each proxy server.

专用数据中心代理最适合高速在线任务,如从不同服务器流式传输大量数据(就大小而言)以进行分析。这也是企业选择专用代理在短时间内传输大量数据的主要原因之一。

专用数据中心代理具有多种功能,如无限带宽和并发连接、便于通信的专用 HTTP 代理以及更安全的 IP 验证。专用数据中心的正常运行时间为 99.9%,在任何会话期间都能正常工作,您大可放心。最后但同样重要的是,ProxyScrape 提供优质的客户服务,将在 24-48 个工作小时内帮助您解决问题。 

其次是住宅代理。住宅代理是每个普通消费者的首选代理。主要原因是住宅代理的 IP 地址与 ISP 提供的 IP 地址相似。这意味着从目标服务器获得访问其数据的许可会比平常更容易。 

ProxyScrape住宅代理的另一个特点是轮换功能。旋转代理可以帮助您避免账户被永久封禁,因为住宅代理会动态更改您的 IP 地址,使目标服务器难以检查您是否在使用代理。 

除此之外,住宅代理的其他功能还包括:无限带宽、并发连接、专用 HTTP/s 代理、随时会话代理(因为代理池中有 700 多万个代理)、用户名和密码验证以提高安全性,最后但并非最不重要的一点是能够更改国家服务器。您可以通过在用户名验证中附加国家代码来选择所需的服务器。 

最后一种是高级代理。高级代理与专用数据中心代理相同。功能保持不变。主要区别在于可访问性。在高级代理中,代理列表(包含代理的列表)向ProxyScrape网络上的每个用户开放。这就是为什么高级代理的成本低于专用数据中心代理的原因。

那么,搜刮 YouTube 视频的最佳代理是什么?答案是 "住宅代理"。原因很简单。如上所述,住宅代理是一种旋转代理,也就是说,你的 IP 地址会在一段时间内动态变化,这有助于在一小段时间内发送大量请求,从而欺骗服务器,而不会被封 IP。 

接下来,最好是根据国家更改代理服务器。您只需在 IP 验证或用户名和密码验证的末尾添加国家 ISO_CODE。 

推荐阅读

抓取 YouTube 评论 - 5 个简单步骤YouTube 代理 - 3 种重要类型和优点

常见问题:

1.如何使用 Python 抓取 YouTube 视频?
您可以借助名为 selenium 的 python 库(自动从 YouTube 搜刮数据)和 pandas(以数据帧格式存储搜刮的数据)来搜刮 YouTube 视频。您需要使用最新版本的网络驱动程序来抓取 YouTube 视频。
2.搜索 YouTube 视频合法吗?
从 YouTube 上抓取任何公开可用的数据都是合法的,只要你的抓取方法或方式不会对网站所有者或内容所有者造成任何形式的伤害。
3.普通用户可以使用 YouTube API 吗?
是的,YouTube 免费向普通用户提供 API。您可以使用它直接与 YouTube 服务器交互,而不会有任何访问困难。

Final Thoughts on Scraping YouTube Videos Using Python:

对于运营自己账户的组织和 Youtube 创作者来说,Youtube上有许多有用的数据,可以对其进行刮擦分析。Youtube scrapers 可以提取与浏览量、喜欢/不喜欢、评论等相关的数据,从而更容易做出更好的业务决策。您可以使用Selenium和 Python 搜刮 Youtube 视频,从而节省大量时间。使用代理很重要,因为如果 Youtube 检测到来自一个 IP 地址的多个请求,你的账户就会被阻止。Youtube 的最佳代理是住宅代理,因为它们速度超快,不易被检测到。

希望你已经了解了如何使用 Python 搜刮 Youtube 视频。