当前位置: 首页 > 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.yutouwan.com/news/418326/

相关文章:

  • 360站长平台链接提交平板网站开发环境
  • 如何做企业套模网站做民宿加盟哪些网站比较好
  • 佛山营销型网站win2012安装wordpress
  • js 网站开发厦门网站建设团队
  • 寿光网站建设推广竞价托管代运营多少钱
  • 网站建设OA系统开发电视网站免费大全
  • 没有域名怎么访问网站视频下载网站免费
  • 网站建设策划书目录罗庄网站建设
  • 微信网站 微信支付网页翻译成中文
  • 萧山做网站的企业网站建设多少钱宋柯
  • 汽车技术资料网站建设中国工商银行官网
  • 深圳盐田建设交易中心网站代运营公司网站
  • 网站服务器不稳定怎么打开网页怎么在网站上添加地图
  • 网站设计师联盟申请域名
  • 宁波奉化建设局网站最全的网站大全
  • 管理系统网站模板昆明做网站要多少钱
  • 网站建设实训报告心得体会wordpress 作者标签
  • 购物网站前台功能lamp wordpress 一键安装
  • 宁夏建设工程质量安全监督总网站wordpress手机编辑器插件下载
  • 哪些人需要建网站wordpress 家庭照片
  • mvc中手把手做网站wordpress杂志主题nana
  • pc 网站开发设计网络推广网上营销
  • 西安谁家的集团门户网站建设比较好网站运营需要多少钱
  • 电商网站后台惠州seo网络推广
  • 用jquery做网站成都网站优化seo
  • 太原企业自助建站网站产品详情用哪个软件做的
  • 招聘网站建设方案模板有个网站经常换域名
  • 广州企业网站建设哪家好建个短视频网站
  • 网站建设合同审批公司网站建设多少钱需要
  • 福州网站建设哪家强微信小程序与网站连接