phanbedder使用实例

PhantomJS是个好东东,很多时候爬虫需要用到,但是这个有windows、linux、mac的版本,想要跨平台的话,需要自己再处理一下,幸好有了phanbedder帮我们做了这个事情,这样就引一下jar包就完事了。

Selenium以及Phantom JS

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Chrome等。

Phantom JS是一个服务器端的 JavaScript API 的 WebKit。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。

maven

    
      net.anthavio
      phanbedder-2.1.1
      1.0.0
    
    
    
      com.github.detro.ghostdriver
      phantomjsdriver
      1.1.0
    

官网给的这个实际跑起来有点问题,报错

Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.browserlaunchers.Proxies
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 29 more

需要更换一下


            net.anthavio
            phanbedder-2.1.1
            1.0.0
        
        
            org.seleniumhq.selenium
            selenium-java
            2.45.0
        
        
            com.codeborne
            phantomjsdriver
            1.2.1
            
            
                
                    org.seleniumhq.selenium
                    selenium-java
                
                
                    org.seleniumhq.selenium
                    selenium-remote-driver
                
            
        

验证

        //Phanbedder to the rescue!
        File phantomjs = Phanbedder.unpack();
        DesiredCapabilities dcaps = new DesiredCapabilities();
        dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
        PhantomJSDriver driver = new PhantomJSDriver(dcaps);
        driver.setLogLevel(Level.INFO);
        //Usual Selenium stuff...
        driver.get("https://www.google.com");
        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Phanbedder");
        query.submit();

        System.out.println(driver.getTitle());
        driver.quit();

doc

  • phanbedder

  • Cannot use PhantomJS with selenium-java 2.44.0 #8088

  • selenium webdriver的各种driver

  • 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

你可能感兴趣的:(java)