phantomjs+webDriver破解头条sign

maven  jar包

 

 
      org.seleniumhq.selenium
      selenium-java
      2.53.1
   

 
   
   
      com.github.detro.ghostdriver
      phantomjsdriver
      1.1.0
   

    
    
     
      org.seleniumhq.selenium
      selenium-java
      2.35.0
 
 
      org.seleniumhq.selenium
      selenium-server
      2.35.0
 
 
      org.seleniumhq.selenium
      selenium-common
      2.0b1
 
 
      org.seleniumhq.selenium
      selenium-api
      2.35.0
 
    

 

 

 

方法一:

public class PhamJS {

    public static void main(String[] args) throws InterruptedException {
         //设置必要参数
        DesiredCapabilities dcaps = new DesiredCapabilities();
        //ssl证书支持
        dcaps.setCapability("acceptSslCerts", true);
        //截屏支持
        dcaps.setCapability("takesScreenshot", true);
        //css搜索支持
        dcaps.setCapability("cssSelectorsEnabled", true);
      
        //js支持
        dcaps.setJavascriptEnabled(true);
        
        dcaps.setCapability(
                "phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); //很重要
        
      
        //驱动支持(第二参数表明的是你的phantomjs引擎所在的路径)
        dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                "C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/phantomjs.exe");
        
       // dcaps.opera().chrome();
        //创建无界面浏览器对象
        PhantomJSDriver driver = new PhantomJSDriver(dcaps);
        
      
 
        //设置隐性等待(作用于全局)
        driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
        //打开页面
        driver.get("file:///D:/Gephi-0.8.2/toutiao_sign.html");
        
       
    //    driver.navigate().refresh();
        
       // Thread.sleep(200);
        
        JavascriptExecutor js = (JavascriptExecutor) driver;
        //Mapmap = (Map) js.executeScript("return ascp.getHoney()");
        
        //System.out.println(map);
        
        String sign = (String) js.executeScript("return TAC.sign('3242684112'+'0')");
                
        // Thread.sleep(10);    
               
                    //str = 'http://www.toutiao.com/api/pc/feed/?max_behot_time='+t+'&category=__all__&utm_source=toutiao&widen=1&tadrequire=true&as=479BB4B7254C150&cp=7E0AC8874BB0985&_signature='+TAC.sign(t);
                    
                   
                  
            
        String url="https://www.toutiao.com/c/user/article/?page_type=1&user_id=3242684112&max_behot_time=0&count=20&as=479BB4B7254C150&cp=7E0AC8874BB0985&_signature="+sign;
       // driver.get(url);
        
        //查找元素
        System.out.println(sign);
        System.out.println(url);
        
        
        

    }
方法二:

public class Util {

      public static String getAjaxCotnent(String url) throws IOException {     
            Runtime rt = Runtime.getRuntime();     
            Process p = rt.exec("C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/phantomjs.exe C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/kk.js "+url);//这里我的codes.js是保存在c盘下面的phantomjs目录     
            InputStream is = p.getInputStream();     
            BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));     
            StringBuffer sbf = new StringBuffer();     
            String tmp = "";     
            while((tmp = br.readLine())!=null){     
                sbf.append(tmp);     
            }     
            System.out.println(sbf.toString());     
            return sbf.toString();     
        }     
         
        public static void main(String[] args) throws IOException {    
            
            
            getAjaxCotnent("file:///D:/Gephi-0.8.2/toutiao_sign.html");
            
            
        }     

}
 

 

system = require('system')     
address = system.args[1];//获得命令行第二个参数 接下来会用到     
//console.log('Loading a web page');     
var page = require('webpage').create();     
page.settings.userAgent='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36';
var url = address;     
//console.log(url);     
page.open(url, function (status) {     
    //Page is loaded!     
    if (status !== 'success') {     
        console.log('Unable to post!');  


   
    } else {     
        //console.log(page.content);     
        //var title = page.evaluate(function() {     
        //  return document.title;//示范下如何使用页面的jsapi去操作页面的  www.oicqzone.com   
        //  });     
        //console.log(title);     
             
        console.log(page.content);     
    }        
    phantom.exit();     
});  

 

 

 

你可能感兴趣的:(phantomjs+webDriver破解头条sign)