如何用Python将网页保存为图片?
我想用Python把一个网页保存成图片,但我不知道该怎么做。
有没有什么工具(或者开源软件)可以帮我呢?
2 个回答
1
你可以使用selenium webdriver在不同的浏览器中获取截图,比如在Chrome浏览器中:
#!/usr/bin/env python
from selenium.webdriver import Chrome
url, filename = 'http://www.stackoverflow.com', '/tmp/stackoverflow.com.png'
browser = Chrome()
try:
browser.get(url)
browser.get_screenshot_as_file(filename)
finally:
browser.quit()
xvfb
可以让你在没有图形界面的情况下运行selenium,这样你就可以同时拍很多截图。如果你想了解更多,可以看看是否可以在没有图形界面的情况下运行selenium(Firefox)网页驱动?。
注意:有一个bug,chrome driver 2只会截图页面可见的部分。你可以在那儿找到一些解决方法。
1
你可以使用(或者查看一下代码)pywebshot
,这是一个开源工具,似乎正好满足你的需求。
$ ./pywebshot.py -t 500x250 http://stackoverflow.com http://meta.stackoverflow.com
Loading http://stackoverflow.com... saved as stackoverflow.com.png
Loading http://meta.stackoverflow.com... saved as meta.stackoverflow.com.png