2014年8月14日 星期四

perl one-liner以mozrepl查詢firefox瀏覽器資料--以btkitty網頁內容的表格為例

perl -MNet::Telnet -e "$t=new Net::Telnet();$t->open(Host=>'localhost', Port=>4242);$t-> print('content.document.body.innerHTML');while(1){my $data=$t->get(Timeout=>1);print $data;}" | perl -MData::Dumper -MHTML::TreeBuilder::XPath -MHTML::Element -e "my $crlf=\"\n\";$string = do { local($/); <> }; $tree= HTML::TreeBuilder::XPath-> new_from_content($string);my $pages=$tree->findnodes( '//div[@class=\'pagination\']/span') -> [0]->as_text;$pages=~s/[^0-9]//g;my $table=$tree->findnodes( '//div[@class=\'list\']')->[0]; foreach my $row($table->findnodes('//dl[not(@class=\'banner\')]')){my @cells=$row-> content_list();print join('',map{$_->as_text.'|||' if ref($_)} $cells[1]-> content_list()),$crlf,$cells[1]->dump;my @dec=$cells[1]->descendants();print $dec[0] ,$crlf;print join('|||',map{$_->as_text if ref($_)}$cells[0]->content_list()),$crlf;}print $crlf;" >btkitty.txt
存到 btkitty.txt 再打開來看,因為原始網頁編碼是 utf8 ,直接輸出到螢幕會有亂碼,轉碼對非繁中語系還是會出問題。


沒有留言:

張貼留言