Python selenium webdriver bot从本地html提取bokeh图像

Python selenium webdriver bot从本地html提取bokeh图像,python,selenium,selenium-webdriver,webdriver,bokeh,Python,Selenium,Selenium Webdriver,Webdriver,Bokeh,如何改进这个脚本? 如何在每次运行时保存多个图像 包含3个图形的html会立即加载,但包含50个图形的html只需几分钟即可加载。所以这不是为每个图像重新加载页面的最佳方式 我每次跑步只能得到一张图片。之后我得到了错误 信息: 陈旧元素引用:元素未附加到页面文档 # encoding: utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import os import

如何改进这个脚本? 如何在每次运行时保存多个图像

包含3个图形的html会立即加载,但包含50个图形的html只需几分钟即可加载。所以这不是为每个图像重新加载页面的最佳方式

我每次跑步只能得到一张图片。之后我得到了错误 信息: 陈旧元素引用:元素未附加到页面文档

# encoding: utf-8 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

import os

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")

url = 'file:\\\\\\%s/26w0.html' % (os.getcwd())

driver.get(url)
elem = driver.find_element_by_class_name("bk-tool-icon-save")
saves = driver.find_elements_by_class_name("bk-tool-icon-save")

for i in range(len(saves)):
    print i
    driver.get(url)
    elem = driver.find_element_by_class_name("bk-tool-icon-save")
    saves = driver.find_elements_by_class_name("bk-tool-icon-save")

    saves[i].click()
    elem.send_keys(Keys.ENTER)
它是用python编写的,但我愿意接受建议, 如果您知道java/.net/任何其他平台/语言上的解决方案,欢迎您


波基图
设置日志级别(“信息”);
html{
宽度:100%;
身高:100%;
}
身体{
宽度:90%;
身高:100%;
保证金:自动;
}
(功能(){
var fn=函数(){
Bokeh.safety(函数(){
“根:{”参考::{“根::{”参考:{”参考:{”参考:{“根:{”参考:{”参考:{”参考:{“属性:{”属性:{“填充阿尔法”::{“值”:0.1},{“价值”:0.1},填充颜色:{“值:”{“值:”,填充颜色:{“值:”{“值:”,[7777777777a0-4-4-4-4-4-4-4-4-4-4-4-4-4-7-4-7-7-fffffffffff7-4-7-7-BBBBBB80F-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-b80f-10-10-10F-B2CE8614,“类型”:“圆圈”},{“属性”:{“绘图”:{“id”:“64a90e8d-fce9-4bbd-b044-1ceda097ba2d”,“子类型”:“图形”,“类型”:“绘图”},“股票代码”:{“id”:“ab09a83a-42c4-44e8-919d-30796ac60bfe”,“类型”:“BasicTicker”},“id”:“B2CB3BA-7dbd-400e-9971-227edc77fed7”,“类型”:“网格”},“属性”:“格式”:“%.1f ml”;“id”;“打印格式”;“CB30796AC60BFE”},“打印格式”{“属性:{“数据源”:{“id”:“83b66900-4cd4-4d1c-8f66-60c8665f23e6”,“类型:{“ColumnDataSource”},“glyph”:{“id”:“5e858549-3ff5-41e0-b90c-d3a6976a3686”,“类型:”“Line”},“悬停符号”:null,“非选择符号”:{“id”:“E655ECC-8d83-440f-af86-88066471”,“类型:”:“Line},“选择符号”;“null”glyph:“ACC4797F-A797F”:“类型”:GlyphRenderer“},{”属性“{”标签“{”值“:“75x^4-542.17x\u00b3+396.6x\u00b2+131.48x+2.0519“}”,渲染器“[{”id:“9b3e35b4-210e-4989-a5c3-8015c3ae34bc”,“类型“:“GlyphRenderer”}],“id:“6f8cc559-bea7-4209-99c5-7037deead29c”,“类型“:“LegendItem”{,”,“属性“:{”回调“,”null,“列名,“,”数据“,”,“,”,[1,4],[2],[1],[2],[4],[2],[4],[4],[4],[4],[4],[4],[4[0.1830 0.1830.0.1830.0.436.0.0.436.0.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7"类型“:”PrintfTickFormatter“}”,绘图“{”id“:”e44c3f42-efae-400d-a997-de22cc1d9be2”,“子类型“:”图形“,”类型“:”绘图“}”,代码“{”id“:”8ab7c0bd-3ec6-4ba1-992b-9b1d81e19180”,“类型“:”BasicTicker“}”,id“:”bf5574c8-01bd-4feb-9dc1-f2d43e3ff684”,“类型“:”线性曲线“,”属性“{”填充颜色“,”白色“,”数值“{单位:“屏幕”、“值”:8},“x”:{“字段”:“x”},“y”:{“字段”:“y”},“id”:“eda96e22-e71f-4452-a30f-B9A4-8718831”,“类型”:“圆圈”},“属性”:{“尺寸”:1,“绘图”:{“id”:“64a90e8d-fce9-4BD-b044-1CEDA0097BA2D”,“子类型”:“图形”,“类型”:“绘图”},“股票代码”:“id”:“2ED0431824-D0391CE-D6ABACITIC”类型“}”“类型”:“网格”,类型:::,,,“数据”数据::{“数据”数据:{“x:[10,20,20,40,8080160,”y:“y:[0.183,0.183,0.183,0.436 6 0.771,1.453,3.436 6 6.771.1,1.3,1.3,1.3,3.436.7 7 7 7 7 7 7 7 7 7 7.1,1,1.1.3,1,1.3,1.3,1.3,1.3.3,2.1773,2.1773,2.7 7 7 7 7 7 7 7 7 7,3.7 7 7 7 7 7 7 7 7 7 7 7 7 7,1.7 7,7 7 7 7 7 7,1.7 7 7,1.7 7 7,7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7,7 7 7 7 7 7 7 7 7 7)“属性”:{”绘图:{“id”:“a51e3dcc-2662-4735-b1ca-48832a7264b6”,“子类型”:“图形”,“类型”:“绘图”},“id”:“351ccde3-723b-445d-8765-6cdcede88d0d”,“类型”:“保存工具”},{“属性”:{“底部单位”:“屏幕”,“填充字母”:{“值”:0.5},“填充颜色”:{“值”:“灰色”},“左侧灯光单位”:“屏幕”,“级别”:“覆盖”,“线字母”:“值”:“黑色单位”:“黑色”{线条虚线“:[4,4],“线条宽度”:{“值”:2},“绘图”:null,“渲染模式”:“css”,“右单元”:“屏幕”,“顶部单元”:“屏幕”},“id”:“521e13fb-9301-4c4f-9622-2a15f6666f88”,“类型”:“框注释”},{“属性”:{“轴标签”:“95735人类凋亡M30,pg/ml”,“轴标签”;“文本字体”;“粗体”;“格式”;“id”:“id”:“30AD8BD-C290Bc”类型“:“PrintfTickFormatter”},“plot”:{“id”:“e44c3f42-efae-400d-a997-de22cc1d9be2”,“subtype”:“Figure”,“type”:“plot”},“ticker”:{“id”:“edb441a1-4fdb-441f-82d7-ef5c9bf89a7b”,“type”:“Basicticcker”},“id”:“7f6c26c5-6c0f-4b82-b54e-6ae035a42551”,“type”:“LinearAxis”},“attributes”{“id”:“id”:“plot”{“Basiccker”“:”Plot“}”,ticker“{”id“:”59097f65-8f85-4e09-a80b-af85f92666ea”,“type“:”BasicTicker“}”,id“:”43d8cc65-3140-400a-adbf-301b93cd21fb”,“type“:”Grid“},{”属性“{”子项“{”id“:”a51e3dcc-2662-4735-b1ca-48832a7264b6”,“subtype“:”Figure“,”type“:”Plot“{”,id“:”64a90e8d-FCEb09-A27BD”,“subtype“,”Plot“:”{“e44c3f42-efae-400d-a997-de22cc1d9be2”,“子类型”:“图形”,“类型”:“绘图”}],“id”:“fa51df2d-c281-4559-9fa2-05403688a06a”,“类型”:“列”},{“属性”:{“边界”:[0,null],“回调”:null,“结束”:2.5},“id”:“4a564014-2efa-4bc1-9fc9-66d4a722c4da”,“类型”:“Range1d”},{“属性”:“回调”;“null”;“id”;“回调”;“回调”;[0,null],“回调”;“结束”:2.5},“id”;“BFA276765BFA263-BFE7663类型”:,,,“数据”数据:{“数据”数据:{“数据”数据:{“x”:[0.5,1,1,1,2,4,4,4,6],“y”数据:{“x”:[0.5,1,1,1.5.1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“y:,,,,,,,,,,,[0.y:[0.0.0.0.0.1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6-b312-2e9e7a3db071“,”类型“:”WheelZoomTool“},“{”属性“:{”边界“:[0,null],”回调“:”null,“结束“:2.5}”,id“:”be0121bb-c66c-4f58-bc
for i in range(len(saves)):
    print i
    elem_loop = elem[i]
    saves_loop = saves[i]
    saves_loop[i].click()
    elem_loop.send_keys(Keys.ENTER) // elem_loop[i] ? you click on the same element for each image ?
// files is an array of string which is the path to the files on disk
for file in files
    driver.get(file)
    for e in driver.find_elements_by_class_name("bk-tool-icon-save"):
        e.click()