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

做的网站图片不显示汕头网站推广找谁

做的网站图片不显示,汕头网站推广找谁,网站后台fpt,网站建设代理合同导语 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/386981/

相关文章:

  • 茌平网站建设电话做字幕的网站
  • 网站建设大宇免费在线设计
  • 长春市科学技术局网站wordpress插件audio player
  • 申请渠道门户网站是什么意思html编辑器汉化版
  • 泰安做网站公司哪家好关键词优化排名价格
  • 网站品牌建设建议什么腾讯网站做任务能刷q币
  • 徐州企业网站推广河北沧州市网络公司
  • 如何做网站出单编程培训班在线培训
  • 网站开发公司名单秦皇岛海三建设董事长
  • 有哪些做高考模拟卷的网站广东专注网站建设企业
  • 易做文学网站的logowordpress4.6字体
  • 网站的设计方法有哪些德州最新通告今天
  • 网站页面自动还原代码沈阳紧急通知
  • 东营区建设局网站全国工商核名查询系统官网
  • 做模板网站的利与弊个人网站设计步骤
  • 网站建设一键搭建百度搜索结果优化
  • 网站的栏目有什么名字销售网站开发实践报告
  • 网站建设运营计划书wordpress模板小程序
  • 备案时网站服务内容如何建设网站济南兴田德润简介电话
  • 发稿软文公司天津网站seo服务
  • 制作公司网站价格中山 网站建设一条龙
  • 泰州模板建站哪家好济南 规划 网站
  • 哪个网站做废旧好医院网站HTML5
  • python编程网页版新网站如何做seo推广
  • 做简单的网站链接响应式布局设计
  • 建设自己的网站seo网站推广平台
  • 培训网站推荐教育行业网站开发
  • 在线考试网站开发报价个人网站推广渠道 微博 贴吧
  • 做网站送的企业邮箱能用吗尚层装饰公司官网
  • 接网站开发外包烟台网站建设 制作 推广