2016-04-28 12 views
0

Ich möchte die Lagerdaten von der Website() über Perl WWW :: Mechanize erhalten. Zum Beispiel, erhalten Sie die Daten durch die Lager-Nummer: 2330. Der Code unten scheint POST Daten OK, aber nicht die Antwortdaten wie die manuelle Operation zu bekommen.Wie bekomme ich das Abfrageergebnis von dieser Website?

use WWW::Mechanize; 

my $stockno= '2330'; 
my $scadate= '20160422'; 
my $mech=WWW::Mechanize->new(); 

my $url='http://www.tdcc.com.tw/smWeb/QryStock.jsp'; 
$mech->get($url); 
$mech->success or die $mech->response->status_line; 
$mech->form_number(1); 
$mech->field('SCA_DATE' => $scadate); 
$mech->field('SqlMethod' => 'StockNo'); 
$mech->field('StockNo' => $stockno); 
$mech->field('StockName' => ''); 
$mech->field('sub' => '查詢'); 
$mech->click_button('name' => 'sub'); 
$mech->success or die "post failed: ", $mech->response->status_line; 
print $mech->response->status_line, "\n"; 
print $mech->response->content(); 
+0

Das sieht okay für mich aus. Was läuft falsch? – Borodin

+0

Bitte fügen Sie ein Beispiel für das Ergebnis/die Ausgabe hinzu. – Sebastian

Antwort

1

Das Problem ist höchstwahrscheinlich, dass die Website verwendet JavaScript, die von nicht unterstützt wird WWW::Mechanize

Sie einen Blick auf WWW::Mechanize::Firefox nehmen soll, die eine laufende Kopie von Firefox verwendet eine ähnliche API zur Verfügung zu stellen das grundlegende WWW::Mechanize. Sie müssen das Mozrepl Plugin für Firefox installieren, damit es richtig funktioniert