【发布时间】:2018-06-21 13:57:43
【问题描述】:
我在 python/selenium 设置中使用 phantomJS 进行屏幕抓取。 具体来说,我需要匹配一个 CSS 选择器的前 N 个元素。
挑战在于网站中存在的匹配元素是原来的两倍多,因此下面的调用耗时太长(速度是我的主要要求):
targets = WebDriverWait(driver, 1).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, css_selector)))
有没有办法为找到的元素定义一个截止点,例如:
EC.presence_of_all_elements_located((By.CSS_SELECTOR, css_selector[0:N])))
我之前没有 CSS 选择器的解决方案是在一次调用中复制所有 html,将其转换为文本,然后通过文本解析获取感兴趣的(文本)元素,使用单词字典来保留/删除。这快了 4 倍以上。但是,这不适合/可扩展,因为需要维护 dict。
如何在python selenium中选择与一个CSS选择器匹配的前n个网站元素?
【问题讨论】:
标签: python css selenium screen-scraping