【问题标题】:How to get same class name seperately by using css_selector?如何使用 css 选择器分别获取相同的类名?
【发布时间】:2021-07-27 15:03:48
【问题描述】:

我正在使用以下代码从http://www.bddk.org.tr/BultenHaftalik 获取数据。两个表元素具有相同的类名。我怎样才能只得到其中一个?

from selenium import webdriver
import time

driver_path = "C:\\Users\\Bacanli\\Desktop\\chromedriver.exe"
browser = webdriver.Chrome(driver_path)
browser.get("http://www.bddk.org.tr/BultenHaftalik")
time.sleep(3)

Krediler = browser.find_element_by_xpath("//*[@id='tabloListesiItem-253']/span")
Krediler.click()

elements = browser.find_elements_by_css_selector("td.ortala")

for element in elements:
    print(element.text)

browser.close()

【问题讨论】:

    标签: python selenium css-selectors


    【解决方案1】:

    如果您只想为一列选择与特定 css 选择匹配的所有行,那么您可以使用 :nth-child() 选择器。

    简单地说,代码会是这样的:

    elements = browser.find_elements_by_css_selector("td.ortala:nth-child(2)")
    

    这样,您将只获得“Krediler”列的行。如果您愿意,也可以通过应用相同的想法来选择第一个孩子。

    【讨论】:

      【解决方案2】:

      我猜你想要做的是提取文本而不是数字,试试这个:

      elements = []
      for i in range(1,21):
          css_selector = f'#Tablo > tbody:nth-child(2) > tr:nth-child({i}) > td:nth-child(2)'
          element=browser.find_element_by_css_selector(css_selector)
          elements.append(element)
      for element in elements:
          print(element.text)
      
      browser.close()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-28
        • 2022-10-31
        • 1970-01-01
        • 2014-03-21
        • 2016-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-08-18
        相关资源
        最近更新 更多