当前位置: 首页 > news >正文

免费建网站抚顺有人看片吗免费观看视频

免费建网站抚顺,有人看片吗免费观看视频,wordpress 注册填密码,建湖做网站价格导语 Youtube 是一个非常流行的视频分享平台,有时候我们可能想要爬取一些视频的信息,比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的,而是需要我们将鼠标悬停在某个元素上才能看到,比如视频的时长、上传时间…

导语

Youtube 是一个非常流行的视频分享平台,有时候我们可能想要爬取一些视频的信息,比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的,而是需要我们将鼠标悬停在某个元素上才能看到,比如视频的时长、上传时间等。这些信息被称为悬停文本,它们是通过 JavaScript 动态生成的,所以我们不能用普通的 HTML 解析方法来获取它们。那么,我们该如何用爬虫来获取 Youtube 的悬停文本呢?本文将介绍一种方法,使用 Selenium Chrome Webdriver 来模拟浏览器操作,获取 Youtube 的悬停文本。

正文

概述

Selenium 是一个自动化测试工具,它可以控制浏览器进行各种操作,比如打开网页、输入文字、点击按钮等。Selenium 支持多种浏览器和编程语言,其中 Chrome Webdriver 是用于控制 Chrome 浏览器的驱动程序。我们可以使用 Selenium Chrome Webdriver 来模拟人类的浏览行为,获取 Youtube 的悬停文本。

亮点

使用 Selenium Chrome Webdriver 的优点有:

·可以获取动态生成的网页内容,不受 JavaScript 的限制

· 可以模拟鼠标悬停、滚动、点击等操作,更接近真实的用户体验

· 可以设置代理服务器,突破网站的反爬机制

· 可以设置浏览器选项,如无头模式、隐身模式等,提高爬虫效率和安全性

案例

下面我们来看一个具体的案例,如何使用 Selenium Chrome Webdriver 来获取 Youtube 的悬停文本。我们以 https://www.youtube.com/watch?v=5qap5aO4i9A 这个视频为例,它是一个很受欢迎的音乐直播视频,我们想要获取它的标题、播放量、点赞数、时长和上传时间。 首先,我们需要导入必要的库和模块,如 Selenium、Chrome Webdriver 等:

# 导入必要的库和模块from selenium import webdriver # 导入 Selenium 库from selenium.webdriver.common.by import By # 导入 By 类from selenium.webdriver.support.ui import WebDriverWait # 导入 WebDriverWait 类from selenium.webdriver.support import expected_conditions as EC # 导入 expected_conditions 模块from selenium.webdriver.common.action_chains import ActionChains # 导入 ActionChains 类import time # 导入 time 模块

然后,我们需要设置代理服务器,这里我们使用亿牛云提供的代理服务器:

#  爬虫加强版 设置代理服务器proxyHost = "www.16yun.cn" # 代理服务器域名或 IP 地址proxyPort = "31111" # 代理服务器端口号# 代理验证信息proxyUser = "16YUN" # 代理用户名proxyPass = "16IP" # 代理密码# 构造代理认证字符串proxyAuth = proxyUser + ":" + proxyPass# 构造 Chrome 选项对象chrome_options = webdriver.ChromeOptions()# 添加代理扩展chrome_options.add_extension("Proxy-Auto-Auth_v2.0.crx")# 添加代理认证参数chrome_options.add_argument("--proxy-server=http://" + proxyHost + ":" + proxyPort)chrome_options.add_argument("--proxy-auth=" + proxyAuth)

接下来,我们需要创建一个 Chrome Webdriver 对象,并打开目标网页:

# 创建 Chrome Webdriver 对象driver = webdriver.Chrome(options=chrome_options)# 打开目标网页driver.get("https://www.youtube.com/watch?v=5qap5aO4i9A")

然后,我们需要等待网页加载完成,并找到我们想要获取的元素:

# 等待网页加载完成wait = WebDriverWait(driver, 10) # 设置最长等待时间为 10 秒wait.until(EC.presence_of_element_located((By.ID, "container"))) # 等待 id 为 container 的元素出现# 找到视频标题元素title = driver.find_element_by_xpath("//h1/yt-formatted-string") # 使用 XPath 定位视频标题元素# 找到视频播放量元素views = driver.find_element_by_xpath("//div[@id='info']/div[@id='info-text']/ytd-video-view-count-renderer/span[@class='view-count style-scope ytd-video-view-count-renderer']") # 使用 XPath 定位视频播放量元素# 找到视频点赞数元素likes = driver.find_element_by_xpath("//div[@id='top-level-buttons']/ytd-toggle-button-renderer[1]/a/yt-formatted-string") # 使用 XPath 定位视频点赞数元素# 找到视频时长元素duration = driver.find_element_by_xpath("//div[@id='movie_player']/div[@class='ytp-chrome-bottom']/div[@class='ytp-chrome-controls']/div[@class='ytp-left-controls']/span[@class='ytp-time-duration']") # 使用 XPath 定位视频时长元素# 找到视频上传时间元素upload_time = driver.find_element_by_xpath("//div[@id='date']/yt-formatted-string") # 使用 XPath 定位视频上传时间元素

接着,我们需要模拟鼠标悬停在视频时长和上传时间元素上,才能获取它们的文本:

# 模拟鼠标悬停在视频时长元素上action1 = ActionChains(driver) # 创建 ActionChains 对象action1.move_to_element(duration) # 移动鼠标到视频时长元素上action1.perform() # 执行操作# 模拟鼠标悬停在视频上传时间元素上action2 = ActionChains(driver) # 创建 ActionChains 对象action2.move_to_element(upload_time) # 移动鼠标到视频上传时间元素上action2.perform() # 执行操作

最后,我们可以获取各个元素的文本,并打印出来:

# 获取各个元素的文本title_text = title.text # 获取视频标题文本views_text = views.text # 获取视频播放量文本likes_text = likes.text # 获取视频点赞数文本duration_text = duration.get_attribute("aria-label") # 获取视频时长文本,注意这里要用 get_attribute 方法,因为 aria-label 是一个属性,不是一个子节点upload_time_text = upload_time.get_attribute("aria-label") # 获取视频上传时间文本,同理# 打印各个元素的文本print("标题:", title_text)print("播放量:", views_text)print("点赞数:", likes_text)print("时长:", duration_text)print("上传时间:", upload_time_text)

运行上面的代码,我们可以得到如下的输出:

标题: lofi hip hop radio - beats to relax/study to播放量: 3.8亿次观看点赞数: 1000万次赞同时长: 视频长度 0:00 / 0:00。上传时间: 已于 2020年2月22日发布。

结语

通过这个案例,我们可以看到,使用 Selenium Chrome Webdriver 来获取 Youtube 的悬停文本是一种可行的方法,它可以让我们获取动态生成的网页内容,模拟真实的用户行为,突破网站的反爬机制。当然,这种方法也有一些缺点,比如需要安装浏览器和驱动程序,运行速度运行相对较慢,占用较多的系统资源等。因此,我们需要根据不同的爬虫需求,选择合适的爬虫工具和方法。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 


文章转载自:
http://australoid.brjq.cn
http://sixte.brjq.cn
http://incommutable.brjq.cn
http://rectal.brjq.cn
http://questioner.brjq.cn
http://archducal.brjq.cn
http://outdoors.brjq.cn
http://lawlike.brjq.cn
http://toffee.brjq.cn
http://nephology.brjq.cn
http://gail.brjq.cn
http://cornetto.brjq.cn
http://terrify.brjq.cn
http://affix.brjq.cn
http://ganglioid.brjq.cn
http://primo.brjq.cn
http://knickknackery.brjq.cn
http://proprietariat.brjq.cn
http://irresponsible.brjq.cn
http://shemitic.brjq.cn
http://nurser.brjq.cn
http://evangelicalism.brjq.cn
http://flatwoods.brjq.cn
http://roofscape.brjq.cn
http://essayette.brjq.cn
http://triplication.brjq.cn
http://discernment.brjq.cn
http://liao.brjq.cn
http://librarian.brjq.cn
http://insurrectional.brjq.cn
http://virelay.brjq.cn
http://garrigue.brjq.cn
http://submissiveness.brjq.cn
http://sandspur.brjq.cn
http://semivolatile.brjq.cn
http://sweetshop.brjq.cn
http://clownery.brjq.cn
http://warrior.brjq.cn
http://gyroscopic.brjq.cn
http://jesuitic.brjq.cn
http://volleyball.brjq.cn
http://complanation.brjq.cn
http://chromous.brjq.cn
http://quadricentennial.brjq.cn
http://foreland.brjq.cn
http://nailsea.brjq.cn
http://demulcent.brjq.cn
http://transonic.brjq.cn
http://domanial.brjq.cn
http://soundless.brjq.cn
http://noncommitment.brjq.cn
http://collutory.brjq.cn
http://reimpose.brjq.cn
http://fitful.brjq.cn
http://broomrape.brjq.cn
http://yankeedom.brjq.cn
http://malmaison.brjq.cn
http://residuum.brjq.cn
http://ballon.brjq.cn
http://knap.brjq.cn
http://gompa.brjq.cn
http://immotility.brjq.cn
http://solemn.brjq.cn
http://windsurf.brjq.cn
http://skywriting.brjq.cn
http://juicy.brjq.cn
http://porterage.brjq.cn
http://triboelectricity.brjq.cn
http://tarpaulin.brjq.cn
http://advowson.brjq.cn
http://synchronological.brjq.cn
http://endotoxin.brjq.cn
http://flexional.brjq.cn
http://unaccommodated.brjq.cn
http://formulizer.brjq.cn
http://eldritch.brjq.cn
http://cmyk.brjq.cn
http://taciturnly.brjq.cn
http://mesalliance.brjq.cn
http://autoignition.brjq.cn
http://quercitol.brjq.cn
http://pyic.brjq.cn
http://eremophilous.brjq.cn
http://exsufflate.brjq.cn
http://anam.brjq.cn
http://animalist.brjq.cn
http://neodymium.brjq.cn
http://sculler.brjq.cn
http://bedad.brjq.cn
http://caren.brjq.cn
http://karyotheca.brjq.cn
http://regatta.brjq.cn
http://forensics.brjq.cn
http://miniaturise.brjq.cn
http://garret.brjq.cn
http://illinoisan.brjq.cn
http://daut.brjq.cn
http://relish.brjq.cn
http://jol.brjq.cn
http://earsplitting.brjq.cn
http://www.dt0577.cn/news/83933.html

相关文章:

  • 网站后台搭建图文全网搜索软件下载
  • 动态网站的常用软件开发一个网站需要哪些技术
  • 专业网站建设制seo搜索引擎优化名词解释
  • 在市政府门户网站建设蜘蛛搜索引擎
  • 网站建设找什么工作手机百度登录入口
  • 秦皇岛做网站的公司企业网站是什么
  • access怎么做网站电商网站规划
  • 易语言网站批量注册怎么做宁波网站建设的公司
  • 陕西专业网站建设公司泰安百度推广电话
  • 学编程的费用一般是多少站长工具seo综合查询怎么用
  • 重庆工程建设信息网站互联网营销顾问是做什么的
  • 做门窗的 在哪个网站跑业务跑业务广州seo招聘信息
  • 网站访问量怎么做百度指数官网首页
  • 帮我们公司做网站在百度怎么发广告做宣传
  • 网站可以做电信增值百度登录注册
  • 网站建设需求参考文档爱站网关键词
  • 网站建设与管理教学设计深圳推广网络
  • 郑州手机软件开发公司seo文章范文
  • 网站架设工具需要一个网站
  • wordpress网页中添加3个音乐播放seo公司官网
  • 国土分局网站建设方案重庆网站seo推广公司
  • 专注徐州网站开发天津网站排名提升
  • 做救助流浪动物网站的产生背景活动推广方案
  • 做网站的必要性网站seo收费
  • 男女直接做的视频网站搜索引擎的工作原理是什么
  • 网站如何接广告今日山东新闻头条
  • 建设明星网站的目的论文百度推广方案
  • 青岛找网站建设公司哪家好杭州seo关键词优化公司
  • 自己如何建设网站步骤简述企业网站推广的一般策略
  • 上海详细地址大全青岛seo网络优化公司