2016-11-07 208 views
0

我正在拍摄模糊出现的phantomjs截图。是否有可能得到更好的屏幕截图,使其看起来像实际的页面?Selenium,PhantomJS屏幕截图模糊

driver = webdriver.PhantomJS() 
driver.set_window_size(a, b) 
driver.get('www.page.com') 
driver.save_screenshot('screenpic.png') 
screen = driver.get_screenshot_as_png() 
im = Image.open(StringIO.StringIO(screen)) 
#I then set a region to crop called wndw 
region = im.crop(wndw) 

如何让页面更清晰?

回答

0

页面获得通过onfocusonblur回调窗口对象,你可以调用自己关注的信息:

browser.execute_script("window.onfocus()")

如果一个特定的元素需要有所侧重,尝试两种:

browser.execute_script("document.getElementById('id').focus()") browser.execute_script("document.getElementById('id').click()")

+0

因此,我下载整个页面只是裁剪一个svg元素。这出来非常模糊。是否可以在裁剪之前将整个页面聚焦,而不是只关注元素?我在编辑中添加了一些代码。 – hellowrld

+0

可以肯定的是,screenpic.png是模糊的,还是最终裁剪的区域? (或者如果给出任何新的答案,则忽略,如果不适用)...即,对于我来说最初的屏幕截图不是模糊的 – Phillip

+0

页面模糊,似乎有点pixalized,所以当我裁剪它仍然模糊。我试图从右侧的选项卡推荐趋势下从finance.yahoo.com/quote/AAPL/analysts?p=AAPL刮取此svg图表。我正在使用屏幕截图,因为我不知道另一种方法来抓取svg – hellowrld

0

从评论到@ Phillip的回答,似乎你没有实际上想要整个页面,你想获得一个SVG文件的图像。

为什么你没有得到SVG文件并直接将其转换为图像?根据this answer,您可以使用Python rsvg来呈现SVG文件。

如果您不知道SVG的URL,您可以使用Selenium找到它,然后从Python下载并呈现给PNG。

+0

因此,我们想要从http://finance.yahoo.com/quote/AAPL/analysts?p=AAPL刮下这张svg图表右侧标签推荐趋势。当我检查元素时,我似乎无法找到网址。如果我只想下载这张图表,那会起作用吗? – hellowrld

+0

data-reactid ='.6oei8dvzzo.0。$ 0.0.0.3.1。$ main-0-Quote-Proxy。$ main-0-Quote.2.1。$ trends.1.0'and the class ='ratings-chart'我无法通过硒找到此链接 – hellowrld