2016-04-28 4 views
0

Я хочу получить данные о запасах с сайта (http://www.tdcc.com.tw/smWeb/QryStock.jsp) через perl WWW :: Mechanize. Например, получить данные по номеру: 2330. Код, приведенный ниже, соответствует POST-данным OK, но не получает данные ответа, такие как Ручная операция.как получить результат запроса с этого сайта?

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

Это выглядит хорошо для меня. Что происходит не так? – Borodin

+0

Пожалуйста, добавьте образец результата/вывода. – Sebastian

ответ

1

Проблема, скорее всего, что сайт использует JavaScript, который не поддерживается WWW::Mechanize

Вы должны взглянуть на WWW::Mechanize::Firefox, который использует запущенную копию Firefox, чтобы обеспечить подобный API для базовый WWW::Mechanize. Вам нужно будет установить плагин Mozrepl для Firefox, чтобы он нормально работал