Created
May 2, 2013 00:53
-
-
Save sioncojp/5499475 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/local/bin/perl | |
| #### 引数に株式名を入れて下さい。######## | |
| #### ex) perl kabuka.pl 引数 ######## | |
| use strict; | |
| use warnings; | |
| use Web::Scraper; | |
| use URI; | |
| use Encode; | |
| use DateTime; | |
| use WWW::Mechanize; | |
| use utf8(); | |
| # <- 日付 -> # | |
| my $dt = DateTime->now( time_zone=>'local'); | |
| my $date=$dt->strftime('%Y年%m月%d日'); | |
| my $msg = $ARGV[0]; | |
| my $kabu_mech = WWW::Mechanize->new(); | |
| $kabu_mech->get('http://finance.yahoo.co.jp/'); | |
| $kabu_mech->submit_form( | |
| fields => { | |
| query => decode_utf8($msg), | |
| }, | |
| ); | |
| my $kabu_url = $kabu_mech->uri(); | |
| if($kabu_url =~ /info.finance.yahoo.co.jp/){ | |
| my $kabuka_search = scraper { | |
| process '//th[contains(@id, "viewItem")]',"search[]" => '@title'; | |
| }; | |
| my $kabuka_list = $kabuka_search->scrape(URI->new("$kabu_url")); | |
| ###全部表示させたいなら | |
| # foreach my $kabuka_listname (@{$kabuka_list->{search}}){ | |
| # print encode('utf-8', $kabuka_listname); | |
| # } | |
| ###表示させたい文字数を制限するなら | |
| for(my $i=0; $i < 7; $i++){ | |
| print encode('utf-8', "$kabuka_list->{search}->[$i]"); | |
| } | |
| } else { | |
| my $kabu_price = scraper { | |
| process '//table[@class="stocksTable"]/tr[1]/td[2]','yen' => 'TEXT'; | |
| process '//table[@class="stocksTable"]/tr[1]/td[3]/span[2]','change' => 'text'; | |
| process '//table[@class="stocksTable"]/tr[1]/th[1]/h1[1]','name' => 'text'; | |
| }; | |
| my $kabuka = $kabu_price->scrape(URI->new("$kabu_url")); | |
| my $kabuka_yen = $kabuka->{yen}; | |
| my $kabuka_name = encode('utf-8',"$kabuka->{name}"); | |
| my $kabuka_change = encode('utf-8', "$kabuka->{change}"); | |
| print "$date $kabuka_nameの株価は$kabuka_yen円です。前日比$kabuka_change (YAHOO! ファイナンス)"; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment