按XPath查找元素。如何拆分XPath中我不想要的元素

编程入门 行业动态 更新时间:2024-10-25 02:31:24
本文介绍了按XPath查找元素。如何拆分XPath中我不想要的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我尝试使用Selify来创建一个网站。 当我尝试获取硬币名称时,遇到了一个问题。因为‘td’中有2个元素 我怎样才能摆脱另一个我不想要的元素。或者只跟踪它的第一个元素。 (我找到了这个post,但我不确定它是否解决了我的问题)

这是我的全部代码

#driver chrome def website = 'www.bitkub/fee/cryptocurrency' path = r"C:\Users\USER\Downloads\chromedriver.exe" options = Options() options.add_argument("start-maximized") driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) driver.get(website) #giving variable coin_name = [my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//tbody//tr//td[2]//span")))] chain_name = [my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//tbody//tr//td[3]//div")))] withdrawal_fees = [my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//tbody//tr//td[4]//div")))] #print(coin_name) #print(chain_name) #print(withdrawal_fees) #for loop make list for coin, chains, wdf in zip(coin_name, chain_name, withdrawal_fees): print("Coin name: {} Chain: {} Fee: {}".format(coin, chains, wdf))

Coin_NAME的输入(我提到它有两个元素)

['Civic(CVC)', '(CVC)', 'Bitcoin SV(BSV)', '(BSV)', 'Ethereum(ETH)', '(ETH)', 'Bitkub Coin(KUB)', '(KUB)', 'Compound(COMP)', '(COMP)', 'Curve DAO Token(CRV)', '(CRV)', .... ] 这是网站上的元素的外观

我希望输入是这样的,这样我就可以从中创建数据帧

['Civic(CVC)', 'Bitcoin SV(BSV)', 'Ethereum(ETH)', 'Bitkub Coin(KUB)', 'Compound(COMP)', 'Curve DAO Token(CRV)', .... ] 推荐答案

根据您当前的输出:

['Civic(CVC)', '(CVC)', 'Bitcoin SV(BSV)', '(BSV)', 'Ethereum(ETH)', '(ETH)', 'Bitkub Coin(KUB)', '(KUB)', 'Compound(COMP)', '(COMP)', 'Curve DAO Token(CRV)', '(CRV)', .... ]

您可以跳过每个备选元素,使用list comprehension创建一个新列表,如下所示:

# coin_name = [my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//tbody//tr//td[2]//span")))] coin_name = ['Civic(CVC)', '(CVC)', 'Bitcoin SV(BSV)', '(BSV)', 'Ethereum(ETH)', '(ETH)', 'Bitkub Coin(KUB)', '(KUB)', 'Compound(COMP)', '(COMP)', 'Curve DAO Token(CRV)', '(CRV)'] res = [coin_name[i] for i in range(len(coin_name)) if i % 2 == 0] print (res)

控制台输出:

['Civic(CVC)', 'Bitcoin SV(BSV)', 'Ethereum(ETH)', 'Bitkub Coin(KUB)', 'Compound(COMP)', 'Curve DAO Token(CRV)']

更多推荐

按XPath查找元素。如何拆分XPath中我不想要的元素

本文发布于:2023-10-08 02:37:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1471267.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:元素   我不   XPath

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!