如何获取本网站的查询结果?
how to get the query result from this website?
我想通过 perl WWW::Mechanize 从网站 (http://www.tdcc.com.tw/smWeb/QryStock.jsp) 获取股票数据。
例如按股票编号获取数据:2330。
下面的代码似乎 POST 数据正常,但没有像手动操作那样获得响应数据。
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();
问题很可能是站点使用 JavaScript,WWW::Mechanize
不支持
您应该查看 WWW::Mechanize::Firefox
, which uses a running copy of Firefox to provide a similar API to the basic WWW::Mechanize
. You will need to install the Mozrepl Firefox 插件以使其正常工作
我想通过 perl WWW::Mechanize 从网站 (http://www.tdcc.com.tw/smWeb/QryStock.jsp) 获取股票数据。 例如按股票编号获取数据:2330。 下面的代码似乎 POST 数据正常,但没有像手动操作那样获得响应数据。
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();
问题很可能是站点使用 JavaScript,WWW::Mechanize
您应该查看 WWW::Mechanize::Firefox
, which uses a running copy of Firefox to provide a similar API to the basic WWW::Mechanize
. You will need to install the Mozrepl Firefox 插件以使其正常工作