如何使用GhostDriver和PhantomJS减少从网上获取URL页面的时间[英] How to reduce time in getting URL pages from web using GhostDriver and PhantomJS

问题描述

我正在 Maven 中做项目.我尝试从 URl 获取页面.到目前为止,我成功地从网络获取页面.但是我有两个问题,

问题,

  1. 以下代码获取任意两个 URL 页面大约需要 14 秒,我该如何减少这个时间,帮助我优化这个.
  2. 执行完成后,不退出代码.为什么 ?我用 driver.close() 结束了代码.那么,为什么,它没有成功退出.我在开始之前和完成过程之后添加了快照.请看这些.

帮助我解决我的问题.请.

我的代码:-

package XXX.YYY.ZZZ.Template_Matching;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import java.io.IOException;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.w3c.dom.Document;

public class HtmlUnit {

    public static void main(String[] args) throws Exception {
        String url1 = "http://www.jabong.com/men/shoes/men-loafers/?source=home-leftnav";
        String url2 = "http://www.jabong.com/fastrack-9915Pp36J-Black-Pink-Analog-Watch-198499.html";
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C://Users//jhamb//Desktop//phantomjs-1.9.0-windows//phantomjs.exe");
        WebDriver driver = new PhantomJSDriver(caps);
        driver.get(url1);
        String hml1 = driver.getPageSource();
        driver.get(url2);
        String hml2 = driver.getPageSource();
        driver.close();
        //System.out.println(hml1);
        //System.out.println(hml2);
           Document doc1 = Jsoup.parse(hml1);
           Document doc2 = Jsoup.parse(hml2);
           // Some operations using these DOM tree, just like , comparing Templates of two URLS
    }
}

开始进程前的快照,

在此处输入图片描述

进程完成后的快照,无故等待时,

在此处输入图片描述

推荐答案

我怀疑驱动程序正在创建一个线程并且它没有退出.尝试在 main 末尾添加一个 System.exit ,看看它是否能解决您的问题.

本文地址:https://www.itbaoku.cn/post/1740020.html