精华内容
下载资源
问答
  • 通过代码实现网页截图

    千次阅读 2013-02-23 08:39:11
    有时候,我们需要用代码网页截图,其实要实现这个功能,无非就是要么实现一个仿真浏览器,要么调用系统浏览器,唯有此而发而已。这里还是用的最常见的第二种,第一种难度很大。在网上找了一个库,很好用,记录下来...
    有时候,我们需要用代码来网页截图,其实要实现这个功能,无非就是要么实现一个仿真浏览器,要么调用系统浏览器,唯有此而发而已。这里还是用的最常见的第二种,第一种难度很大。在网上找了一个库,很好用,记录下来,仅供有需要的同学参考。
    下载地址:http://code.google.com/p/greenvm/downloads/detail?name=Screenshot.7z&can=2&q=
        Screenshot就是这样的一个程序,这是一个以DJNativeSwing于系统后台调用浏览器,产生指定网页地址截图的示例。
    部分核心代码如下:
    public Main(final String url, final int maxWidth, final int maxHeight) {
            super(new BorderLayout());
            JPanel webBrowserPanel = new JPanel(new BorderLayout());
            final String fileName = System.currentTimeMillis() + ".jpg";
            final JWebBrowser webBrowser = new JWebBrowser(null);
            webBrowser.setBarsVisible(false);
            webBrowser.navigate(url);
            webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
            add(webBrowserPanel, BorderLayout.CENTER);

            JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4));

            webBrowser.addWebBrowserListener(new WebBrowserAdapter() {

                // 监听加载进度
                public void loadingProgressChanged(WebBrowserEvent e) {
                    // 当加载完毕时
                    if (e.getWebBrowser().getLoadingProgress() == 100) {
                        String result = (String) webBrowser
                                .executeJavascriptWithResult(jsDimension.toString());
                        int index = result == null ? -1 : result.indexOf(":");
                        NativeComponent nativeComponent = webBrowser
                                .getNativeComponent();
                        Dimension originalSize = nativeComponent.getSize();
                        Dimension imageSize = new Dimension(Integer.parseInt(result
                                .substring(0, index)), Integer.parseInt(result
                                .substring(index + 1)));
                        imageSize.width = Math.max(originalSize.width,
                                imageSize.width + 50);
                        imageSize.height = Math.max(originalSize.height,
                                imageSize.height + 50);
                        nativeComponent.setSize(imageSize);
                        BufferedImage image = new BufferedImage(imageSize.width,
                                imageSize.height, BufferedImage.TYPE_INT_RGB);
                        nativeComponent.paintComponent(image);
                        nativeComponent.setSize(originalSize);
                        // 当网页超出目标大小时
                        if (imageSize.width > maxWidth
                                || imageSize.height > maxHeight) {
                            //截图部分图形
                            image = image.getSubimage(0, 0, maxWidth, maxHeight);
                            /*此部分为使用缩略图
                            int width = image.getWidth(), height = image
                                .getHeight();
                             AffineTransform tx = new AffineTransform();
                            tx.scale((double) maxWidth / width, (double) maxHeight
                                    / height);
                            AffineTransformOp op = new AffineTransformOp(tx,
                                    AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
                            //缩小
                            image = op.filter(image, null);*/
                        }
                        try {
                            // 输出图像
                            ImageIO.write(image, "jpg", new File(fileName));
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
                        // 退出操作
                        System.exit(0);
                    }
                }
            }

            );
            add(panel, BorderLayout.SOUTH);

        }

    转载注明:http://www.zhurouyoudu.com/index.php/archives/374/

    展开全文
  • php中CutyCapt实现网页截图保存代码

    千次阅读 2014-07-18 18:25:29
    [导读] 网页截图这个功能大家可能用到最多的就是QQ截图,或利用asp net来实现截图,其实我们也可以直接使用php来网页截图哦,下面我来给大家介绍php利用CutyCapt实现网页截图,有需要的朋友可参考。 CutyCapt下载...

    [导读] 网页截图这个功能大家可能用到最多的就是QQ截图,或利用asp net来实现截图,其实我们也可以直接使用php来网页截图哦,下面我来给大家介绍php利用CutyCapt实现网页截图,有需要的朋友可参考。 CutyCapt下载地址:

    网页截图这个功能大家可能用到最多的就是QQ截图,或利用asp.net来实现截图,其实我们也可以直接使用php来网页截图哦,下面我来给大家介绍php利用CutyCapt实现网页截图,有需要的朋友可参考。

    CutyCapt下载地址:http://sourceforge.net/projects/cutycapt/files/cutycapt/

    windows CutyCapt不需要安装,直接保存到你的电脑中即可。

    然后你php代码如下写

     代码如下 复制代码

    <?php
    /* 
    网页截图功能,必须安装IE+CutyCapt
    url:要截图的网页
    out:图片保存路径
    path:CutyCapt路径
    cmd:CutyCapt执行命令
    比如:http://你php路径.php?url=http://www.php100.com
    */
    $url=$_GET["url"];
    $imgname=str_replace('http://','',$url);
    $imgname=str_replace('https://','',$imgname);
    $imgname=str_replace('.','-',$imgname);
    $out = 'D:/webroot/test/'.$imgname.'.png';
    $path = 'D:/webserver/CutyCapt.exe';
    $cmd = "$path --url=$url --out=$out";
    echo $cmd;
    system($cmd);
    ?>

    如果你是linux系统就需要简单的配置一下CutyCapt


    安装网站截图软件CutyCapt
     
      
    一,先安装Qt47
    增加qt47的下载源

     代码如下 复制代码
    vi /etc/yum.repos.d/atrpms.repo
    [atrpms]
    name=CentOS $releasever – $basearch – ATrpms
    baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
    gpgcheck=1
    enabled=1
          
    [atrpms-testing]
    name=CentOS $releasever – $basearch – ATrpms testing
    baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
    gpgcheck=1
    enabled=1
          
    yum update
    yum installqt47
    yum installqt47-devel
    yum installqt47-webkit
    yum installqt47-webkit-devel

    也许这里还会有报错提示
    warning: qt44-x11-4.4.3-10_4.el5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 66534c2b
    error: Failed dependencies:
            libGLU.so.1()(64bit) is needed by qt44-x11-4.4.3-10_4.el5.x86_64
            libmng.so.1()(64bit) is needed by qt44-x11-4.4.3-10_4.el5.x86_64
    解决:
    yum -y installqt-devel*
     
    二,安装 CutyCapt

     代码如下 复制代码
    cd /data0/software
    svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
    mv cutycapt/CutyCapt /usr/local/cutycapt
    cd /usr/local/cutycapt
    qmake
    make

    此处可能会报错
    make: *** [CutyCapt] Error 1
    解决:
    yum update sqlite
    再次执行 make
     
    如果还不成功 qmake-qt47 再次执行make
     
    三,下载x-server

     代码如下 复制代码
     
    wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt
    mv ./xvfb-run.sh.txt/usr/local/cutycapt/xvfb-run.sh
    chmodu+x /usr/local/CutyCapt/xvfb-run.sh

     
     
    四,安装中文包
    yum installfonts-chinese
     
     
    五,安装ImageMagick
    yum installImageMagick
     
    六,测试:
     

     代码如下 复制代码
    /usr/local/cutycapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24"/usr/local/cutycapt/CutyCapt --url=http://www.php100.com--out=/tmp/163.jpg

     
    163.jpg没有加载出flash
     
    七,下载64位flash插件:

     代码如下 复制代码
    cd /data0/software
    #wget http://119.188.72.26/1/ishare.down.sina.com.cn/14036482.so?ssig=YB70Xk7Ph9&Expires=1340899200&KID=sina,ishare&ip=1340777795,114.255.44.&fn=libflashplayer.so
    <a href="http://ishare.iask.sina.com.cn/f/13659493.html" target="_blank">http://ishare.iask.sina.com.cn/f/13659493.html</a>
    ll /usr/lib64/mozilla/plugins/
    lrwxrwxrwx 1 root root 41 06-27 14:00 libflashplayer.so ->/usr/lib64/flash-plugin/libflashplayer.so
    cp /data0/software/libflashplayer.so /usr/lib64/flash-plugin/

     
    测试加载成功

    展开全文
  • C#实现网页截图功能

    2021-01-20 06:49:53
    网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示: private void Form_Load(object sender, EventArgs e) { //接收web url string colle = string.Empty; string ...
  • 使用JavaScript截图,这里我要推荐两款开源组件:一个是Canvas2Image,它可以将Canvas绘图编程PNG/JPEG/BMP的图像;但是光有它还不够,我们需要... 代码如下: var strDataURI = oCanvas.toDataURL();  // returns “d
  • 使用firefox浏览器无头模式在内存里渲染页面,然后用selenium操作浏览器并解析截图。需要安装firefox(也支持chrome),然后下载firefox 驱动 详见:https://github.com/mozilla/geckodriver/releases。下载完成后存放...

    使用firefox浏览器无头模式在内存里渲染页面,然后用selenium操作浏览器并解析截图。需要安装firefox(也支持chrome),然后下载firefox 驱动 详见:https://github.com/mozilla/geckodriver/releases。下载完成后存放任意路径,然后将代码中的geckoDriver 改为驱动的实际路径即可。

    import org.openqa.selenium.*;

    import org.openqa.selenium.firefox.FirefoxDriver;

    import org.openqa.selenium.firefox.FirefoxOptions;

    import org.openqa.selenium.support.ui.ExpectedConditions;

    import org.openqa.selenium.support.ui.WebDriverWait;

    import sun.misc.BASE64Decoder;

    import javax.imageio.ImageIO;

    import java.awt.image.BufferedImage;

    import java.io.ByteArrayInputStream;

    import java.io.File;

    import java.io.IOException;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Random;

    import java.util.concurrent.TimeUnit;

    /**

    * 网页截图

    */

    public class WebPageScreenShot {

    /**

    * fireFox驱动路径

    */

    String geckoDriver = "C:\\Program Files\\Python37\\geckodriver.exe";

    String type="png";

    public void loadPage(String logonUrl,String actionUrl,String resultPath) throws IOException, InterruptedException {

    System.setProperty("webdriver.gecko.driver", geckoDriver);//chromedriver服务地址

    FirefoxOptions firefoxOptions = new FirefoxOptions();

    firefoxOptions.addArguments("-headless");

    //firefoxOptions.addArguments("--start-maximized");

    //firefoxOptions.addArguments("--start-fullscreen");

    firefoxOptions.setHeadless(true);

    FirefoxDriver driver = new FirefoxDriver(firefoxOptions); //新建一个WebDriver 的对象,但是new 的是FirefoxDriver的驱动

    driver.get(logonUrl);//打开指定的网站

    driver.findElement(By.id("J_username")).sendKeys(new String[]{"***"});

    driver.findElement(By.id("J_password")).sendKeys(new String[]{"***"});

    driver.findElement(By.id("loginBtn")).click();//登录

    (new WebDriverWait(driver, 20)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".index-welcome-info")));//检查到登录成功

    driver.get(actionUrl);//打开指定的网站

    driver.manage().window().setSize(new Dimension(1900, 800));

    //driver.manage().window().maximize();

    String js1 = "return document.body.clientHeight.toString()";

    String js1_result = driver.executeScript(js1) + "";

    int height = Integer.parseInt(js1_result);

    List files = new ArrayList();

    int last_t = 0;

    for (int i = 0; i < 20; ) {

    int currentHeight = (i * height);

    String js = "window.scrollTo(0," + currentHeight + ");";

    driver.executeScript(js);

    js1 = "return document.body.scrollHeight.toString()+','+document.body.scrollTop.toString()";

    js1_result = driver.executeScript(js1) + "";

    /**

    * real_scroll_h, real_top = js1_result.split(',')[0], js1_result.split(',')[1]

    * 22 #real_scroll_h, real_top 是当前滚动条长度和当前滚动条的top,作为是否继续执行的依据,由于存在滚动条向下拉动后会加载新内容的情况,所以需要以下的判断

    * 23 #如果这次设置的top成功,则继续滚屏

    */

    int real_scroll_h = Integer.parseInt(js1_result.split(",")[0]);

    int real_top = Integer.parseInt(js1_result.split(",")[1]);

    //#real_scroll_h, real_top 是当前滚动条长度和当前滚动条的top,作为是否继续执行的依据,由于存在滚动条向下拉动后会加载新内容的情况,所以需要以下的判断

    if (real_top == currentHeight) {

    // #如果这次设置的top成功,则继续滚屏

    i++;

    files.add(screenshot(driver).getAbsolutePath());

    last_t = real_top;

    } else {

    // #如果本次设置失败,看这次的top和上一次记录的top值是否相等,相等则说明没有新加载内容,且已到页面底,跳出循环

    if (real_top != last_t) {

    last_t = real_top;

    } else {

    files.add(screenshot(driver).getAbsolutePath());

    break;

    }

    }

    }

    driver.quit();//退出浏览器

    merge(files.toArray(new String[]{}), type, resultPath);

    }

    private File screenshot(WebDriver driver) throws InterruptedException, IOException {

    try {

    /**

    * WebDriver自带了一个智能等待的方法。

    dr.manage().timeouts().implicitlyWait(arg0, arg1);

    Arg0:等待的时间长度,int 类型 ;

    Arg1:等待时间的单位 TimeUnit.SECONDS 一般用秒作为单位。

    */

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    } catch (Exception e) {

    e.printStackTrace();

    }

    Thread.sleep(10000);//等等页面加载完成

    /**

    * dr.quit()和dr.close()都可以退出浏览器,简单的说一下两者的区别:第一个close,

    * 如果打开了多个页面是关不干净的,它只关闭当前的一个页面。第二个quit,

    * 是退出了所有Webdriver所有的窗口,退的非常干净,所以推荐使用quit最为一个case退出的方法。

    */

    byte[] imageBytes = (byte[]) ((FirefoxDriver) driver).getScreenshotAs(new OutputType() {

    public Object convertFromBase64Png(String s) {

    try {

    return (new BASE64Decoder()).decodeBuffer(s);

    } catch (IOException e) {

    e.printStackTrace();

    return null;

    }

    }

    public Object convertFromPngBytes(byte[] bytes) {

    return bytes;

    }

    });

    ByteArrayInputStream bytes = new ByteArrayInputStream(imageBytes);

    BufferedImage image = ImageIO.read(bytes);

    File file = File.createTempFile((new Random()).nextInt()+"",type);

    ImageIO.write(image, "png", file);

    return file;

    }

    /**

    * Java拼接多张图片

    *

    * @param pics

    * @param type

    * @param dst_pic

    * @return

    */

    public static boolean merge(String[] pics, String type, String dst_pic) {

    int len = pics.length;

    if (len < 1) {

    System.out.println("pics len < 1");

    return false;

    }

    File[] src = new File[len];

    BufferedImage[] images = new BufferedImage[len];

    int[][] ImageArrays = new int[len][];

    for (int i = 0; i < len; i++) {

    try {

    src[i] = new File(pics[i]);

    images[i] = ImageIO.read(src[i]);

    } catch (Exception e) {

    e.printStackTrace();

    return false;

    }

    int width = images[i].getWidth();

    int height = images[i].getHeight();

    ImageArrays[i] = new int[width * height];// 从图片中读取RGB

    ImageArrays[i] = images[i].getRGB(0, 0, width, height,

    ImageArrays[i], 0, width);

    }

    int dst_height = 0;

    int dst_width = images[0].getWidth();

    for (int i = 0; i < images.length; i++) {

    dst_width = dst_width > images[i].getWidth() ? dst_width

    : images[i].getWidth();

    dst_height += images[i].getHeight();

    }

    if (dst_height < 1) {

    System.out.println("dst_height < 1");

    return false;

    }

    // 生成新图片

    try {

    // dst_width = images[0].getWidth();

    BufferedImage ImageNew = new BufferedImage(dst_width, dst_height,

    BufferedImage.TYPE_INT_RGB);

    int height_i = 0;

    for (int i = 0; i < images.length; i++) {

    ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(),

    ImageArrays[i], 0, dst_width);

    height_i += images[i].getHeight();

    }

    File outFile = new File(dst_pic);

    ImageIO.write(ImageNew, type, outFile);// 写图片

    } catch (Exception e) {

    e.printStackTrace();

    return false;

    }finally {

    /*

    删除临时文件

    */

    for(String tempFile:pics){

    File t=new File(tempFile);

    t.delete();

    }

    }

    return true;

    }

    public static void main(String[] args) throws IOException, InterruptedException {

    WebPageScreenShot screenShot=new WebPageScreenShot();

    screenShot.loadPage("******","*******","D:\\TEST.png");

    }

    }

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    com.sinitek.aim

    java-selenium

    1.0-SNAPSHOT

    log4j

    log4j

    1.2.17

    org.seleniumhq.selenium

    selenium-java

    3.141.59

    展开全文
  • java实现网页截图

    2019-03-20 17:21:00
    使用工具 java+selenium+phantomjs /chromedriver /firefox 1.分别是phantomjs插件 google截图插件 和 firefox火狐浏览器截图插件2. selenium工具 是对...上代码:1.使用phantomjs截图 1 public static S...

    使用工具

    java+selenium+phantomjs /chromedriver /firefox

    1.分别是 phantomjs插件 google截图插件 和 firefox火狐浏览器截图插件
    2. selenium工具 是对页面进行点击操作后在截图 需要用到的工具。

    插件的使用方法几乎一致

    上代码:1.使用phantomjs截图

     1     public static String getPicByPhantomjs(Map<String ,String> map,String pic,File sf){
     2                 logger.warn("使用phantomjs截图链接:"+map.get("url"));
     3                 //定义图片存储路径
     4                 DesiredCapabilities dcaps = null;
     5                 PhantomJSDriver driver = null;
     6                  String picName = null;
     7                  try {
     8                 //设置必要参数
     9                 dcaps =  new DesiredCapabilities();
    10                 //ssl证书支持
    11                 dcaps.setCapability("acceptSslCerts", true);
    12                 //截屏支持
    13                 dcaps.setCapability("takesScreenshot", true);
    14                 //css搜索支持
    15                 dcaps.setCapability("cssSelectorsEnabled", true);
    16                 //js支持
    17                 dcaps.setJavascriptEnabled(true);
    18                 //驱动支持(第二参数表明的是你的phantomjs引擎所在的路径)
    19                 dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
    20                         "D:/phantomjs/phantomjs-2.1.1-windows/bin/phantomjs.exe");
    21 //                        "F:/test/phantomjs-2.1.1-windows/bin/phantomjs.exe");
    22                 //创建无界面浏览器对象
    23                 driver = new PhantomJSDriver(dcaps);
    24                 long start = System.currentTimeMillis();
    25 //                 driver.get(url); 
    26                  driver.get(map.get("url")); 
    27                  //设置隐性等待(作用于全局)
    28                  driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    29                  Thread.sleep(5* 1000);
    30                      if(!"".equals(map.get("str")) && map.get("str")!=null){
    31                      if(ElementExist(driver,By.className(map.get("str")))){
    32                          WebElement inputBox = driver.findElement(By.className(map.get("str")));
    33                          Actions action = new Actions(driver);
    34                         action.click(inputBox).build().perform();
    35                          //元素点击 后等待加载
    36                          Thread.sleep(2 * 1000);
    37                        }
    38                      }
    39                
    40                  JavascriptExecutor js = driver;
    41                  //页面下滑10次,每次下滑加载2s
    42                  for (int i = 0; i < 10; i++) {
    43                      js.executeScript("window.scrollBy(0,1000)");
    44                      //睡眠2s等js加载完成
    45                      Thread.sleep(2 * 1000);
    46                  }
    47                  //指定了OutputType.FILE做为参数传递给getScreenshotAs()方法,其含义是将截取的屏幕以文件形式返回。
    48                  File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    49                  Thread.sleep(2000);
    50                  //利用FileUtils工具类的copyFile()方法保存getScreenshotAs()返回的文件对象
    51                  FileUtils.copyFile(srcFile, new File(sf.getPath()+File.separator+pic));
    52                  Thread.sleep(2000);
    53                  Thumbnails.of(sf.getPath()+File.separator+pic).scale(1.0f).toFile(sf.getPath()+File.separator+pic);
    54                  driver.close();
    55                  driver.quit();
    56                  picName = pic;
    57                  System.out.println("本次截图耗时:" + (System.currentTimeMillis() - start) + " 毫秒");
    58 //                 System.out.println("转换后的链接:"+map.get("url"));
    59         } catch (Exception e) {
    60              driver.close();
    61              driver.quit();
    62              picName = "";
    63              logger.warn("使用phantomjs截图时:"+e.toString());
    64         }
    65         return picName;
    66     }
    使用 phantomjs截图

    2.使用 chromedriver截图

     1     public static String getPicByChrom(Map<String ,String> map,String pic,File sf){
     2 
     3                 logger.warn("使用chromedriver截图链接:"+map.get("url"));
     4                 //定义图片存储路径
     5                 WebDriver driver = null ;
     6                 String picName = null;
     7                 try {
     8                 long start = System.currentTimeMillis();
     9                 String chromeDriverDir = "D:/chromedriver/chromedriver_win32/chromedriver.exe";
    10                 System.setProperty("webdriver.chrome.driver", chromeDriverDir);
    11                 driver = new ChromeDriver();
    12                 driver.manage().window().maximize();
    13                  driver.get(map.get("url")); 
    14                  //设置隐性等待(作用于全局)
    15                  driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    16                  Thread.sleep(5* 1000);
    17                      if(!"".equals(map.get("str")) && map.get("str")!=null){
    18                      if(ElementExist(driver,By.className(map.get("str")))){
    19                          WebElement inputBox = driver.findElement(By.className(map.get("str")));
    20                          Actions action = new Actions(driver);
    21                         action.click(inputBox).build().perform();
    22                          //元素点击 后等待加载
    23                          Thread.sleep(2 * 1000);
    24                      }
    25                      }
    26                
    27 //                 JavascriptExecutor js = (JavascriptExecutor) driver;
    28                  //页面下滑10次,每次下滑加载2s
    29 //                 for (int i = 0; i < 1; i++) {
    30 //                     js.executeScript("window.scrollBy(0,1000)");
    31 //                     //睡眠2s等js加载完成
    32 //                     Thread.sleep(2 * 1000);
    33 //                 }
    34                  //指定了OutputType.FILE做为参数传递给getScreenshotAs()方法,其含义是将截取的屏幕以文件形式返回。
    35                  File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    36                  Thread.sleep(2000);
    37                  //利用FileUtils工具类的copyFile()方法保存getScreenshotAs()返回的文件对象
    38                  FileUtils.copyFile(srcFile, new File(sf.getPath()+File.separator+pic));
    39                  Thread.sleep(2000);
    40                  Thumbnails.of(sf.getPath()+File.separator+pic).scale(1.0f).toFile(sf.getPath()+File.separator+pic);
    41                  driver.close();
    42                  driver.quit();
    43                  picName = pic;
    44                  System.out.println("本次截图耗时:" + (System.currentTimeMillis() - start) + " 毫秒");
    45 //                 System.out.println("转换后的链接:"+map.get("url"));
    46         } catch (Exception e) {
    47              driver.close();
    48              driver.quit();
    49              picName = "";
    50              logger.warn("使用chromedriver截图时:"+e.toString());
    51         }
    52         return picName;
    53     }
    chromedriver截图使用

    注 :

    1.phantomjs截图会创建无界面浏览器进行截图,可截取网页长图 (推荐使用)
    2.chromedriver 截图工具只能截取当前浏览器可见区域长度(调用浏览器打开url地址,插件版本需要与chrom浏览器版本一致)

    3.Thumbnails 为图片压缩工具

    转载于:https://www.cnblogs.com/atimo/p/10566248.html

    展开全文
  • 主要介绍了浅析js实现网页截图的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了Python实现网页截图(PyQT5)过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 纯Java实现整个网页截图项目源代码

    热门讨论 2013-12-12 20:25:30
    精品必须10分啊,里面包含了java项目源代码和所需jar包,使用了DJNativeSwing组件技术实现
  • C#实现网页快照,输入任意链接,在指定文件夹下生成对应的.jpg网页截图,且解决了截图白屏问题!
  • 网页截图代码(支持滚动截图)

    热门讨论 2009-04-06 00:34:56
    一般的截图软件只能抓一屏一屏的图片,有时需要把整个网页都抓成图片;这个小工具代码实现了这样的功能。
  • 本文实例为大家分享了python自动网页截图并裁剪图片的具体代码,供大家参考,具体内容如下代码:# coding=utf-8import timefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options...
  • 本文实例为大家分享了python自动网页截图并裁剪图片的具体代码,供大家参考,具体内容如下 代码: # coding=utf-8 import time from selenium import webdriver from selenium.webdriver.chrome.options import ...
  • 如果需要将一个网址的内容做成视图图片输出,则需要辅助工具CutyCapt来实现这一需求 Windows系统 下载CutyCapt CutyCapt下载地址:...代码实现(时间需要20多秒): public funct...
  • python+selenium实现网页全屏截图 前言 实现方法采用 Pillow+Selenium,基本原理为:截取多张不同位置的页面,拼接成一个图片 已知情报:Chrome()只能截取当前屏幕展示出的网页,本篇文章是针对webdriver.Chrome()的...
  • ie11 浏览器截取网页指定区域生成图片,拱用户另存为 文件准备 需要引入的js文件:html2canvas.js 当ie版本过低提示promise相关的异常时 需要引入bluebird.js 提取码都是:1234 相关代码 需要引入的文件: <...
  • 个人在网上搜到一个...问题3:或者有其他方法实现网页截图没,例如网址 https://www.so.com/s?q=%E4%BD%A0 ... 1c671edd7b6158708e6 ,若截取屏幕的话,该网页无法完全截图,想完整截图必须得滚动网页。 谢谢!
  • python的脚本,使用无头浏览器进行截图,是针对chrome的。此代码的运行,是建立在本地安装了,chrome和chromedriver(windows是chromedriver.exe)。 import re import requests import io import sys from ...
  • Web截图实现关键词高亮 代码 from selenium import webdriver import time import sys import re from PIL import Image from io import BytesIO DEBUG_MODE = True with open("jquery.min.js") as jquery_file: ...
  • 最近由于工作需要,需要对部分网站进行全文截屏。... 此处给出一个简单的方法,以20行代码实现selenium+chromedriver+python实现豆瓣的全文截取。 from selenium import webdriver options = ...
  • 本文实例讲述了Windows平台PHP+IECapt实现网页批量截图并...下面是在windows环境下用php结合iecapt实现的网页截图并创建缩略图的步骤和代码: 一、准备 下载最新版IECapt 官方地址:http://iecapt.sourceforge.net/ 在li
  • 网页截图是很多站点的一个小需求,这段代码实现的是如何根据url获得网页截图并输出到网页中。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using...
  • 在实际的工作中,有时我们需要对一些网页进行截图,一般的网页截图代码如下(VB2010) 这段代码用到了辅助类clsCaptureSettings。这个类有3个字段:Url:要访问的网页的地址;Width:要截图的宽度,默认是1024...
  • C#实现的当前网页截图功能,放在事件中即可用 代码简单易懂,使用和修改方便,不需要任何插件
  • Python使用selenium+PIL实现网页长屏截图代码如下: 代码如下: import glob import os import time import numpy from PIL import Image from selenium import webdriver class ScreenLongShot(object): def _...
  • 本文实例讲述了jQuery实现网页顶部固定导航效果代码。分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
  • 本文实例讲述了jquery实现网页的页面平滑滚动效果代码。分享给大家供大家参考,具体如下: 这款网页页面平滑滚动jquery代码,点击链接会让网页平滑滚动到链接对应的位置。 运行效果截图如下: 在线演示地址如下: ...
  • 有个需求就是前端需要将网页的内容生成一张图片,这个功能如果让后端做的话,前端需要把大量的代码传给后端,然后后端去解析生成图片,再返回给前端,幸运的是,html2canvas.js让这件事情变得简单起来,下面是我在...
  • 最近在开发一个本地互联网应用的项目,为了增加用户体验,需要在搜索结果左侧显示如图一所示的某个网站的缩略图...下面是在windows环境下用php结合iecapt实现网页截图并创建缩略图的步骤和代码: 一、准备 下载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 629
精华内容 251
关键字:

代码实现网页截图