我想通过perl WWW :: Mechanize从网站(http://www.tdcc.com.tw/smWeb/QryStock.jsp)获取股票数据。 例如,通过库存号码获取数据:2330。 下面的代码似乎是POST数据OK,但没有得到像Manual操作那样的响应数据。
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 :(得分:1)
问题很可能是该网站使用的是JavaScript WWW::Mechanize
您应该查看WWW::Mechanize::Firefox
,它使用Firefox的运行副本为基本WWW::Mechanize
提供类似的API。您需要为Firefox安装Mozrepl插件才能使其正常工作