首页 > 解决方案 > 使用 selenium 查找属性的值

问题描述

我编写了一个代码来使用每个股票的 ID 来抓取股票数据,如下面的代码:

<a class="inst" href="loader.aspx?ParTree=151311&amp;i=33854964748757477" target="33854964748757477">رنيك</a>

ID 是“33854964748757477”
,因为他们会添加新股票并删除一些我必须每天修改代码,因为有超过 150 只股票很耗时,我正在寻找一种方法来抓取所有ID 使用属性“target”通过 selenium 查找其值,然后遍历它们。网址是:http ://www.tsetmc.com/Loader.aspx?ParTree=15131F

标签: pythonseleniumweb-scraping

解决方案


div[class='{c}']您可以使用css 选择器从位于的行中获取 ID 属性。WebDriverWait用于等待网页元素的必要条件。获得属性presence_of_all_elements_located条件就足够了。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)

# get all rows
rows = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div[class='{c}']")))

# get ID attributes from rows
ids = [row.get_attribute("id") for row in rows]

推荐阅读