8

我将从该页面截取屏幕截图:http: //books.google.de/books ?id=gikDAAAAMBAJ&pg=PA1&img=1&w=2500或保存它输出的图像。

但我找不到办法。使用 wget/curl 我得到一个“不可用的错误”,还有其他工具,如 webkit2png/wkhtmltoimage/wkhtmltopng。

有没有一种干净的方法可以用 python 或命令行来做呢?

此致!

4

3 回答 3

15

如果你愿意,你可以使用 ghost.py。 https://github.com/jeanphix/Ghost.py

这是一个如何使用它的示例。

from ghost import Ghost
ghost = Ghost(wait_timeout=4)
ghost.open('http://www.google.com')
ghost.capture_to('screen_shot.png')

最后一行将图像保存在当前目录中。

希望这可以帮助

于 2013-05-02T18:41:13.573 回答
7

我很难让 Ghost 在无头 Centos VM 上始终如一地截取屏幕截图。 SeleniumPhantomJS为我工作:

from selenium import webdriver
br = webdriver.PhantomJS()
br.get('http://www.stackoverflow.com')
br.save_screenshot('screenshot.png')
br.quit
于 2014-06-14T16:06:44.667 回答
6

有时您需要额外的 http 标头,例如 User-Agent 才能使下载工作。在 python 2.7 中,您可以:

import urllib2
request = urllib2.Request(
    r'http://books.google.de/books?id=gikDAAAAMBAJ&pg=PA1&img=1&w=2500',
    headers={'User-Agent':'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 firefox/2.0.0.11'})
page = urllib2.urlopen(request)

with open('somefile.png','wb') as f:
    f.write(page.read())

或者您可以查看在 wget 或 curl 中添加 http 标头的参数。

于 2013-05-02T18:16:30.800 回答