我需要通过URL获取网站的全屏截图,有没有相关的PHP程序或服务?如果没有,是否有任何Java程序可以实现这个目的?
http://webthumb.bluga.net/home
举几个例子。
对我来说最好的解决方案是: 使用 selenium webdriver 并且获取屏幕截图可以像这样简单:
import java.io.File;
import java.net.URL;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class Testing {
public void myTest() throws Exception {
WebDriver driver = new RemoteWebDriver(
new URL("http://localhost:4444/wd/hub"),
DesiredCapabilities.firefox());
driver.get("http://www.google.com");
// RemoteWebDriver does not implement the TakesScreenshot class
// if the driver does have the Capabilities to take a screenshot
// then Augmenter will add the TakesScreenshot methods to the instance
WebDriver augmentedDriver = new Augmenter().augment(driver);
File screenshot = ((TakesScreenshot)augmentedDriver).
getScreenshotAs(OutputType.FILE);
}
}
别忘了使用 FireFoxDriver。HtmlUnitDriver 无法工作,因为它是无界面的。
非常容易!!
尝试使用无头浏览器。以下任何一个都可以:
您可以使用以下JavaScript代码(保存到文件renderpage.js
)来截取屏幕截图:
var page = require('webpage').create();
page.open('http://en.wikipedia.org', function() {
page.render('wikipedia.png');
});
然后通过命令行执行:
> phantomjs.exe renderpage.js
这将创建一个名为wikipedia.png
的文件,其中包含您的屏幕截图。
apt-get install cutycapt xvfb
和运行:
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url=http://www.google.com --out=/home/screenshots/screenshot_name.png
如果您有专用服务器,也可以自己完成此操作。其思路是启动X Server和全屏模式下的浏览器,拍摄并保存为图像文件。
根据您的使用情况(偶尔或频繁),您可以调整该过程(即不必每次都杀死X等)以使其更快。