python - 使用 selenium (python) 选择满足条件的所有元素

标签 python selenium selenium-webdriver

使用selenium,有没有办法让脚本挑选出满足特定条件的元素?

我真正想做的是让 selenium 选择拥有超过 X 个观众的所有 Twitch channel 。如果您检查元素,您会发现:

<p class="info"
    562
    viewers on
    <a class="js-profile-link" href="/hey_jase/profile" 
    data-tt_content="live_channel" data-tt_content_index="1"
    data-tt_medium="twitch_directory" data-ember-action="1471">
    Hey_Jase
    </a>
</p>

最佳答案

首先,您可以找到所有 twitch channel 链接。然后,根据观看次数过滤它们。

大致如下:

import re
from selenium import webdriver


THRESHOLD = 100  

driver = webdriver.Firefox()
driver.get("url")

pattern = re.compile(r"(\d+)\s+viewers on")
for link in driver.find_elements_by_css_selector("p.info a[data-tt_content=live_channel]"):
    text = link.find_element_by_xpath("..").text  # get to the p parent element
    match = pattern.search(text)  # extract viewers count
    if match:
        viewers_count = int(match.group(1))
        if viewers_count >= THRESHOLD:
            print(link.text, viewers_count)

关于python - 使用 selenium (python) 选择满足条件的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40032560/

相关文章:

python - 使用其他名称复制文件

python - 检索 ManyToManyField 的类

python - 在 Python 中读取 bmp 文件

java - 如何在 Selenium webdriver 和 Java API 中录制视频

java - 如何在 Selenium 网格中执行拖放

python - 使用空字段和空白字段创建 Django 表单

python - Selenium Webdriver (Python) - 单击 div 元素(复选框)

angularjs - 50001ms后等待Protractor与页面同步超时

python - 如何使用不变的 URL 抓取多个页面 - python

c# - 使用 Webdriver 使用 Selenium 超时的最佳方法是什么