我想从网站上获取数据: http://mops.twse.com.tw/mops/web/t05st03
设置输入id" co_id"的值到1101
<input id="co_id" class="textbox" type="text" onkeydown="{if(event.keyCode==13){ajax1(document.form1,'table01');}}" size="10" value="" name="co_id"></input>
然后单击按钮
<input type="button" onclick="javascript:doAction();hideIt2('quicksearch9');ajax1(document.form1,'table01');" value="搜尋"></input>
该网站将在同一网页上显示额外数据,这些数据是我想要抓取的数据。
我写了一个perl代码
my $url="http://mops.twse.com.tw/mops/web/t05st03";
my $mech = WWW::Mechanize->new( );
$mech->get($url);
my $response;
$mech->field(co_id => 1101);
$mech->click_button(name => " 搜尋 ");
$response = $mech->content();
print $response;
但它无法获取$ mech-&gt;内容
中的数据我该如何解决?
答案 0 :(得分:1)
您只需在脚本中模拟JavaScript即可。我使用Firefox的HTTPFox扩展来查找POST所需的信息:
use WWW::Mechanize;
my $url="http://mops.twse.com.tw/mops/web/t05st03";
my $co_id = 1101;
my $mech = WWW::Mechanize->new();
$mech->agent_alias("Windows IE 6");
$mech->get($url);
$mech->post("http://mops.twse.com.tw/mops/web/ajax_t05st03",
Content => {
encodeURIComponent => 1,
step => 1,
firstin => 1,
off => 1,
keyword4 => "",
code1 => "",
TYPEK2 => "",
checkbtn => "",
queryName => "co_id",
TYPEK => "all",
co_id => $co_id,
});
my $response;
$response = $mech->content();