目标是尝试从大型html文件中更快地解析出一个字段。 html的结构不太好,并且有上万个“ div标签”,没有要搜索的名称/标识。我只能用“普通股”之类的模式搜索文本,但所需字段可能不是第一个。
我用过:
browser = webdriver.Firefox()
browser.get(MyLocalFileName)
browser.find_elements(By.TAG_NAME, "div")
find_elements用了5分钟来解析此文件。请注意,提供第一个元素的find_element可能不包含我需要的字段。但是find_elements将花费很长时间并且很浪费。
例如,我正在尝试解析多少份额:
相关行:“ 4601075000普通股”
不相关的行:“ XXX公司增加了已发行普通股的股份”
我可以某种方式找到第一个元素,如果不需要的话,循环到“下一个元素”吗?还是只能“找到前N个元素”?
答案 0 :(得分:1)
您可以考虑将locator strategy更改为XPath
XPath提供了position()函数,该函数使您可以将结果集限制为给定范围,因此,如果您调用find_elements_by_xpath方法,例如:
driver.find_elements_by_xpath("//div/*[position()<=3]")
它将仅返回前3个div对象,而不是扫描整个DOM