python - Selenium:抓取和打印类
问题描述
这是我第一次使用 Selenium。我以前看过 StackOverflow 中的其他问题,但它们对我没有太大帮助。我想从 https://link 网站“仅”打印文本 Giornata 38 和 Giornata 37。没有内容,只有这两个文本用于说明目的。我指定所有内容仅用于我正在学习 Python 的教育、学习和形成目的。
我究竟做错了什么?网站上的 Python 代码或 html 检查?重要提示:如果我写错了代码并且您修改/改进了它,请记住保留 Firefox,不要用 Chrome 替换它。谢谢
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('link')
giornata = browser.find_element_by_class_name("event__round event__round--static")
print(giornata)
browser.quit()
display.stop()
错误:引发异常类(消息,屏幕,堆栈跟踪)selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:.event__round event__round--static
解决方案
该类event__round event__round--static
包含一个空格" "
,您必须删除该空格并用一个点连接该类.
。
代替:
giornata = browser.find_element_by_class_name("event__round event__round--static")
尝试:
giornata = browser.find_element_by_class_name("event__round.event__round--static")
print(giornata.text)
根据您的评论,如果您想访问特定元素,例如“Giornata 37”和“Giornata 38”,您可以使用:nth-of-type(n)
CSS 选择器,div.event__round:nth-of-type(2)
将选择 adiv
然后选择第二个 class event__round
。
在您的示例中:
print(browser.find_element_by_css_selector("div.event__round:nth-of-type(15)").text)
print(browser.find_element_by_css_selector("div.event__round:nth-of-type(2)").text)
输出:
Giornata 37
Giornata 38
推荐阅读
- c# - 将 blob 上传到存储帐户时出现异常
- asp.net - 将 Byte[] 转换为流文件 asp.net
- c++ - 如何为 QLineEdit 重载复制和粘贴事件
- sql - Oracle r12 - 发票凭证编号和发票序列号列
- python - 如何在 PyQt5 中将 Tensorboard 嵌入到 Gui 应用程序
- selenium - 如何将 findElements 用于 img 类?
- python-3.x - 如何使用请求 2.18 发送带有 JSON 正文的 GET 请求?
- python-3.x - 如何检查列表中的值不相等
- python - 在 python 中使用 @functools.lru_decorator 实现 LRU 缓存
- r - 如何在 Shiny 中使用 DataTable Extensions 更改下载文件中的名称?