2015-08-25 59 views
-3

我使用WWW :: Mechanize :: PhantomJS編寫Perl腳本來獲取頁面內容https://www.landata.vic.gov.au/,但內容爲空。WWW :: Mechanize :: PhantomJS無法獲取HTTPS頁面

看來SSL證書有問題,誰能幫我解決這個問題?

這是我從我的節目中提取代碼:

use strict; 
use warnings; 

use CGI qw(:cgi-lib :standard); 
use WWW::Mechanize::PhantomJS; 
use Utility; 
use JSON; 
#use DBI; 
use DateTime; 
use DateTime::TimeZone; 

#Create PhantomJs object 

my $website = WWW::Mechanize::PhantomJS -> new(
    launch_arg => ['ghostdriver/src/main.js'] 
); 

#Launch the website 
$website -> get(https://www.landata.vic.gov.au/); 

#Get content of the page 

print $website->content(format => 'html'); 
+2

'得到(https://www.landata.vic.gov.au/);'? Somethings missing –

+0

'使用CGI qw(:cgi-lib:standard);'......嗯......非常令人費解。爲什麼你需要這個? –

回答

2

PhantomJs默認嘗試SSL 3.0和您的目標網站不支持SSL 3.0。 嘗試通過增加--ssl-protocol=anyphantomjs_arg覆蓋此默認行爲:

my $website = WWW::Mechanize::PhantomJS -> new(
    phantomjs_arg => [ '--ssl-protocol=any' ], 
    launch_arg => ['ghostdriver/src/main.js'] 
); 
+0

一般參考:http://stackoverflow.com/questions/12021578/ph​​antomjs-failing-to-open-https-site –

+0

@ArtjomB .:我認爲這將是顯而易見的文件,但我現在已經將它添加到響應。 –

+0

@SinanÜnür:我認爲這是示例代碼中的拼寫錯誤,而不是實際代碼中的錯字,因爲它甚至不通過沒有缺失引號的語法檢查。 –