如何用Python将网页保存为图片?

0 投票
2 回答
3454 浏览
提问于 2025-04-17 20:54

我想用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

撰写回答