2017-06-12 38 views
1
<canvas class="word-cloud-canvas" id="word-cloud-canvas-1892" height="270" width="320"></canvas> 

如何使用Selenium Python從HTML5畫布獲取圖像的URL源代碼?使用Selenium Python從HTML5畫布獲取圖像URL

我試圖用

driver.execute_script("return arguments[0].toDataURL('image/png');", canvasElement) 

但它只返回二進制?的形象。 我不想保存圖像,但獲取圖像的URL。可能嗎?

+0

請您澄清一下其他選項(除了**硒**)是否可以接受,如果是,請查看提供的解決方案? –

回答

-1

我遇到類似的問題,我能找到的唯一的選擇是使用subprocessphantomjs

這裏是的Python代碼

import json, subprocess 
output = check_output(['phantomjs', 'getResources.js', main_url]) 
urls = json.loads(output) 
for url in urls: 
    #filter and process URLs 

的Javascript文件內容

// getResources.js 
// Usage: 
// phantomjs getResources.js your_url 

var page = require('webpage').create(); 
var system = require('system'); 
var urls = Array(); 

page.onResourceRequested = function(request, networkRequest) { 
    urls.push(request.url) 
}; 

page.onLoadFinished = function(status) { 
    setTimeout(function() { 
     console.log(JSON.stringify(urls)); 
     phantom.exit(); 
    }, 16000); 
}; 

page.onResourceError = function() { 
    return false; 
} 
page.onError = function() { 
    return false; 
} 

page.open(system.args[1]); 

PhantomJS支持va也有不同的選擇。例如更改用戶代理,你可以使用這樣的事情:

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) ...'; 

這是我用我的問題this answer的簡化版本。