【问题标题】:How to get the next element of a specific class in selenium using python如何使用python获取硒中特定类的下一个元素
【发布时间】:2019-01-08 05:27:24
【问题描述】:

我完全是 selenium 的初学者。我想知道,例如,在加载 reddit 页面时,如何获取该页面上 reddit 帖子的所有标题。我知道这些的 HTML 标头是 h2,而且我知道如何获取 reddit 网站的第一个标头。但是,您如何切换到同一个类的下一个元素以便抓取它?我正在使用python和硒。谢谢!

【问题讨论】:

  • 你有没有自己尝试过的代码。
  • 请描述您的问题。所以有人可以帮助你。
  • 欢迎来到 Stack Overflow!请参阅:How do I do X? Stack Overflow 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
  • 哦,好的,对不起。我不知道,我昨天创建了我的帐户
  • 如何将我的问题标记为已解决?

标签: python selenium google-chrome reddit


【解决方案1】:

首先你想获取你的类的所有元素(将 myClass 更新为你想要的类):

driver.find_elements_by_class_name("myClass")

然后,您将该类的所有元素保存在一个数组中。我将让您尝试解决如何从中访问第二个元素。

【讨论】:

  • 感谢您的评论。但是,每当我运行 python 脚本时,谷歌浏览器就会闪烁并自动最小化。现在,突然之间,运行脚本会为我打开一个新窗口,我必须手动将其最小化。有没有办法恢复我所做的一切,以便在 chrome 中打开链接会自动最小化新方法? (没有 driver.minimize 或 --headless)谢谢。
  • 这听起来与您的原始问题不同。我建议您在 Stack Overflow 上提出另一个问题并将您的代码添加到问题中,以便我们了解并解决您面临的问题。
【解决方案2】:

特别是对于 reddit,要获取页面上所有标题的列表,请使用 driver.find_elements_by_css_selector(".imors3-0.euspgB") 获取页面上所有标题的数组。

【讨论】:

  • imors3-0euspgB 是动态生成的类。你应该尽量避免它们。
【解决方案3】:

这个问题的措辞令人困惑,但我认为您只想使用h2 标签遍历页面上的所有元素。

例如:

elements = driver.find_elements_by_tag_name('h2')
for element in elements:
    print(element.text)

【讨论】:

    【解决方案4】:

    如果您需要一个关于如何遍历正文中元素的简单示例,请随时查看我的迷你项目https://github.com/kerwei/LimaSE_Scraper/blob/master/lima_scrape.py

    您可能会对第 113 - 114 行感兴趣。

    正如上一个答案所指出的:

    driver.find_elements_by_xpath(pattern)
    

    为您提供所有目标元素。请注意元素s中的(s)。此后,您只需遍历该方法返回的可迭代对象。

    【讨论】:

      猜你喜欢
      • 2021-01-12
      • 2021-08-03
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多