python - 如何使用 Selenium 和 Python 查找从 covid 中恢复的人数的类路径
问题描述
所以,我需要从这个网页获取文本(从covid中恢复的人数)到控制台,但是我找不到数字的类,有人可以帮我找到类,所以我可以将数字打印到控制台。我需要使用 PhantomJS 因为我不想在运行代码时打开日志。
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.tvnet.lv/covid19Live')
text = driver.find_element_by_class_name("covid-summary__count covid-c-recovered")
print(text)
解决方案
find_element_by_class_name()
需要一个类作为参数,但您提供了两个类名(类是“多值属性”,多个值用空格分隔)。
要么检查一个类:
driver.find_element_by_class_name("covid-c-recovered")
或者,切换到 CSS 选择器:
driver.find_element_by_css_selector(".covid-summary__count.covid-c-recovered")
深层发掘
让我们看一下源代码。当按类名搜索元素时,Python selenium 实际上在底层构造了一个 CSS 选择器:
elif by == By.CLASS_NAME:
by = By.CSS_SELECTOR
value = ".%s" % value
这意味着当您用作covid-summary__count covid-c-recovered
类名值时,用于查找元素的实际 CSS 选择器恰好是:
.covid-summary__count covid-c-recovered
可以理解的是,它不匹配任何元素(covid-c-recovered
在这里将被视为标签名称)。
推荐阅读
- sql - 在 SQL 中转置许多聚合
- python - scrapy 是否可以在实际抓取数据之前导航链接?
- r - checkError(res) 中的错误:httr 调用中的未定义错误。httr 输出:无法连接到 localhost 端口 4445:连接被拒绝
- laravel - 在路径中找不到 Laravel 文件 - Storage::move
- html - 将 div 覆盖在另一个上并垂直对齐文本
- jenkins - 如何在詹金斯的后期构建项目中获取参数值?
- java - Gremlin 只读事务支持
- automation - 作为 e2e 测试的一部分,测试站点中的链接的最佳方法是什么
- php - “PHP 错误:调用字符串上的成员函数 getKey()”来自 Laravel 集合上的 diff() 方法
- javascript - 如何在javascript中将音频(mp3)文件转换为二进制文件?