2017-06-04 59 views
-1

我在寫一些CasperJS腳本,允許我從控制檯登錄網站。但是,當我嘗試登錄https://www.zara.com/us/時,我不斷收到HTTP 412 Precondition Failed。我試過--ssl-protocol=any--ignore-ssl-erros=true,但它不能解決問題。有誰知道如何解決這一問題?用CasperJS獲取HTTP 412

謝謝!

+0

也許他們有想通了,你是刮他們,打破他們的服務條款的安全系統。 – Evert

回答

0

您也可以嘗試--web-security=false,但我認爲您的問題與HTTPS無關。有了這個簡單的腳本,我得到一個200碼(即使我運行它不帶任何選項):

var casper = require('casper').create(); 

casper.start('https://www.zara.com/us/'); 

casper.then(function() { 
    this.echo(this.getTitle()); 
}); 

casper.run(); 

還有就是當你填寫表格,或在您請求的HTTP頭最有可能的一些錯誤代碼。爲了記錄在案,這裏是412錯誤(MDN)說明:訪問到目標資源

的HTTP 412前提條件失敗的客戶端錯誤響應代碼表示 已被拒絕。當If-Unmodified-Since或If-None-Match標頭 定義的條件 沒有滿足時,對於除GET或HEAD以外的方法的條件請求發生這種情況。在這種情況下,無法進行請求(通常爲上傳或修改資源),並且發回此錯誤響應 。

0

這個測試腳本適用於我。犯罪嫌疑人要麼用戶代理或viewportsize

casper.options.viewportSize = { width:1024, height: 800 } 

casper.test.begin('ZARA', 1, function (test) { 

    casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X)');  

    casper.start("https://www.zara.com/us/", function() { 
    test.assertTitle("ZARA United States - Official Website"); 
    }); 

    casper.waitUntilVisible("#newsletter-subscribe-form", function() { 
    this.capture("pass.jpg"); 
    }, function() { 
    this.capture("fail.jpg"); 
    }); 


    casper.run(function() { 
    test.done(); 
    }); 
}); 

enter image description here