phantomjs+webDriver破解头条sign

maven  jar包

 

 <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.53.1</version>
    </dependency>
 
    <!-- https://mvnrepository.com/artifact/com.github.detro.ghostdriver/phantomjsdriver -->
    <dependency>
      <groupId>com.github.detro.ghostdriver</groupId>
      <artifactId>phantomjsdriver</artifactId>
      <version>1.1.0</version>
    </dependency>
    
    
    <dependency>  
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.35.0</version>
</dependency>  
<dependency>  
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-server</artifactId>
      <version>2.35.0</version>
</dependency>  
<dependency>  
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-common</artifactId>
      <version>2.0b1</version>
</dependency>  
<dependency>  
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-api</artifactId>
      <version>2.35.0</version>
</dependency>  
    

 

 

 

方法一:

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;
        //Map<String,String>map = (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();     
});  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值