使用selenium,我如何才能只找到前N个元素来运行得更快?

2024-05-16 12:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

目标是试图更快地从一个大的html文件中解析出一个字段。html的结构不好,有一万个“div标签”没有名称/id可供搜索。我只能用“普通股”这样的模式搜索文本,但所需的字段可能不是第一个。你知道吗

我用过:

browser = webdriver.Firefox()
browser.get(MyLocalFileName)
browser.find_elements(By.TAG_NAME, "div")

find\u元素花了5分钟来分析这个文件。请注意,find_元素给出了第一个元素,它可能不包含我需要的字段。但是找到元素需要很长时间,而且是浪费。你知道吗

例如,我试图解析有多少个共享:
相关行:“4601075000股普通股”
无关行:“XXX公司增加流通普通股股份”

我能不能找到第一个元素,如果不需要,循环到“下一个元素”?或者我只能“找到前N个元素”?你知道吗


Tags: 文件文本divbrowser名称id元素目标
1条回答
网友
1楼 · 发布于 2024-05-16 12:49:58

您可以考虑将locator strategy更改为XPath

XPath提供了position()函数,允许您将结果集限制在给定的范围内,因此如果调用find_elements_by_xpath方法,例如:

driver.find_elements_by_xpath("//div/*[position()<=3]")

它将只返回前3个div对象,而不是扫描整个DOM

更多信息:XPath Operators & Functions

相关问题 更多 >