python - 硒痛苦缓慢
问题描述
所以我有一个从网站上抓取数据的 selenium 脚本。遗憾的是,我无法共享该网站,但我注意到我制作的几个刮板存在同样的问题。我已经设置了,如果遇到任何异常就返回'Not Found'
,因为这可以通过我正在寻找的信息来实现。当找到信息时,脚本非常快,但如果不是,它就很慢。
有什么建议可以加快速度吗?
form = driver.find_element_by_id('formSearchCriteria')
form.send_keys(userID)
searchButton = driver.find_element_by_id('phs-save-btn')
searchButton.click()
nextButton = driver.find_elements_by_xpath('//*[@class ="jss137"]')
nextButton[0].click()
list = driver.find_elements_by_xpath('//*[@class ="balance-field"]')
l = str(list[1].text)
ignore_keys = ["User ","Identifier"]
for ignore in ignore_keys:
l = l.replace(ignore,"")
return l
except:
return 'Not Found'
解决方案
该脚本是缓慢的原因
nextButton = driver.find_elements_by_xpath('//*[@class ="jss137"]')
和
list = driver.find_elements_by_xpath('//*[@class ="balance-field"]')
这两行。
事情是他们都返回列表。
现在,如果找到一个元素,一切都很好。它会按预期工作。
但如果不是,它会等待您套件中的任何隐式等待。
所以如果你想让他们花更少的时间,我建议你减少 ImplicitWait。
driver.implicitly_wait(10)
10 甚至更少应该适合您。
推荐阅读
- javascript - javascript用自定义键合并两个数组
- vue.js - 值仅在方法中更改,VueJs
- php - 在树枝中返回 acf 图像 src
- r - 输入更新后编辑闪亮数据表中的数据
- python - 有没有办法在树莓派中使用 python 脚本获取 roscore 字符串?
- mysql - 如何通过 Brew 在 Mac 上安装 MySQL 5.7.23
- javascript - react-native-navigation:将自定义标题设置为除一个以外的所有屏幕
- javascript - 如何在 vue-multiselect 中没有标签?
- macos - 另一台机器上基于 Apple 开发证书的应用程序
- header - Haproxy 动态后端匹配请求头