【问题标题】:Selenium: scraping and print classesSelenium:抓取和打印类
【发布时间】:2021-09-05 15:02:40
【问题描述】:

这是我第一次使用 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

【问题讨论】:

  • 请添加print(giornata)的结果或您遇到的错误。

标签: python python-3.x python-2.7 selenium selenium-webdriver


【解决方案1】:

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) 将选择 div,然后二等舱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

【讨论】:

  • 非常感谢。但我想写第 38 天和第 37 天(如问题中所写),如下所示:Giornata 37,Giornata 38。不仅是 Giornata 38。PS:你是否控制过我编写的 Python 代码是否良好?具体来说,您是否控制了链接​​的已检查 html 代码?我不知道只写“event__round.event__round - static”是否足够。我不应该在类中指定 div 或类吗?你可以编辑你的答案吗?谢谢你:)
  • @FrederickMan 所以你想要Giornata 37Giornata 38 在输出中?另外,请注意,在这里,我们不会为您编写代码,如果您有具体问题,我们可以为您提供帮助。
  • 在我明确要求我需要第 38 天和第 37 天的问题中。我没有在评论中添加它。也许您已经心不在焉地阅读了我的问题。无论如何,谢谢你的回答。很亲切
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多