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

网站正在建设中单页网站 备案网站

网站正在建设中单页,网站 备案网站,北京公司注册资金,网站建设客户资源导语 Youtube 是一个非常流行的视频分享平台#xff0c;有时候我们可能想要爬取一些视频的信息#xff0c;比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的#xff0c;而是需要我们将鼠标悬停在某个元素上才能看到#xff0c;比如视频的时长、上传时间…导语 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?v5qap5aO4i9A 这个视频为例它是一个很受欢迎的音乐直播视频我们想要获取它的标题、播放量、点赞数、时长和上传时间。 首先我们需要导入必要的库和模块如 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-serverhttp:// proxyHost : proxyPort)chrome_options.add_argument(--proxy-auth proxyAuth) 接下来我们需要创建一个 Chrome Webdriver 对象并打开目标网页 # 创建 Chrome Webdriver 对象driver webdriver.Chrome(optionschrome_options)# 打开目标网页driver.get(https://www.youtube.com/watch?v5qap5aO4i9A) 然后我们需要等待网页加载完成并找到我们想要获取的元素 # 等待网页加载完成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[idinfo]/div[idinfo-text]/ytd-video-view-count-renderer/span[classview-count style-scope ytd-video-view-count-renderer]) # 使用 XPath 定位视频播放量元素# 找到视频点赞数元素likes driver.find_element_by_xpath(//div[idtop-level-buttons]/ytd-toggle-button-renderer[1]/a/yt-formatted-string) # 使用 XPath 定位视频点赞数元素# 找到视频时长元素duration driver.find_element_by_xpath(//div[idmovie_player]/div[classytp-chrome-bottom]/div[classytp-chrome-controls]/div[classytp-left-controls]/span[classytp-time-duration]) # 使用 XPath 定位视频时长元素# 找到视频上传时间元素upload_time driver.find_element_by_xpath(//div[iddate]/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://www.sadfv.cn/news/418326/

相关文章:

  • 最新新闻热点国家大事湖南网站seo公司
  • 山东建设企业网站做商城网站的项目背景图片
  • 搜索引擎网站建设公司商城网站入驻系统
  • 网站维护是谁做的建站宝盒里的手机网站
  • 哪些网站是phpwind做的国外wordpress主机
  • 北京网站制作公司建设金融网站哪家好
  • 济南网站托管运营网站 系统概述
  • jsp网站开发详解 赵增敏做智慧教室的网站
  • 网站注册账号网站百度手机端排名怎么查询
  • 网站做以后怎么修改网站内容免费网站域名注册申请
  • 佛山南海建设局网站汉中做网站的公司电话
  • 重庆大山建设有限公司网站深圳网页设计推广渠道
  • wordpress 写文章泉州优化seo网站关键词优化
  • 厦门 微网站建设公司甘肃再就业建设集团网站
  • 野外美食网站设计欣赏小程序开发公司推荐
  • 知名高端网站建设报价广西南宁公司网站制作
  • 做网站只开发手机端可不可以昆明官网seo公司
  • 足球竞猜网站开发网站推广报价
  • 北京昌平网站设计华为al00手机价格是多少钱
  • p2p网站怎么做电脑网游
  • 网站建设公司服务学院网站建设项目的成本计划书
  • 网站开发的软硬环境怎么描述wordpress官网密码错误
  • 郑州装修公司口碑哪家好网站推广优化c重庆
  • 网站开发要学哪些知识微信公众号如何快速涨粉
  • 站长工具查询域名网站 做百度推广有没有效果
  • 至高建设集团 网站合肥建设工程信息网官网
  • 成成品网站源码有限公司网站建立的步骤是( )。
  • 阜新全网营销网站建设便宜质量好的国产手表
  • 福州网站建设的公司搭建网站需要什么技术
  • 顺企网浙江网站建设网站卡片设计