- ベストアンサー
perlで特定のデータを書き出す方法
- perlを使用して、CSVデータを読み込み、指定のURLへアクセスし、取得した特定のデータを書き出す方法を教えてください。
- 初心者の方がperlを使用して、CSVデータから特定のデータを取得し、他のURLに書き出す方法を教えてください。
- perlを使用して、CSVデータを読み込み、URLにアクセスして特定のデータを書き出す方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ポイントとなるのは、CSV形式の行からの値の取出し、WWWへのアクセス、XMLの構文解析の方法かと思います。 モジュールのインストール方法については分かりますよね? CSV形式の行からの値の取出しですが、「Perlメモ」さんが参考になります。 http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values WWWへのアクセスですが、LWPが定番のモジュールです。これを使えば簡単に目的のページの内容を取得できるかと。 http://homepage3.nifty.com/hippo2000/perltips/LWP.html あとはXMLの構文解析をするXMLパーサですが、これもいくつかモジュールが有ります。 http://www.ibm.com/developerworks/jp/xml/library/x-xmlperl1.html http://homepage3.nifty.com/hippo2000/perltips/xml/parser.htm 下記のページも参考になるかも知れません。 http://www.ibm.com/developerworks/jp/webservices/library/itm-ws4/#e
その他の回答 (1)
- _--_1l1_1_
- ベストアンサー率67% (102/152)
適当。表示がくずれるので空白2文字を全角空白にしていることに注意。 use strict; use warnings; use feature 'say'; use URI; use XML::TreePP; use constant BASE_URI => q{http://news.google.com/news?hl=en&ned=us&ie=UTF-8&oe=UTF-8&output=rss}; my $tpp = XML::TreePP->new(); while ( my $line = <DATA> ) { $line =~ s/\x0D?\x0A?$//; my ( undef, undef, $keyword ) = split q{,}, $line; $keyword =~ s/^[ \t]*//g; $keyword =~ s/[ \t]*$//g; my $uri = URI->new(BASE_URI); $uri->query_form( $uri->query_form, q => $keyword ); say '--- GET from ', $uri; my $tree = $tpp->parsehttp( GET => $uri ); for my $item ( @{ $tree->{rss}->{channel}->{item} } ) { say 'title : ', $item->{title}; } } __DATA__ 1, hoge, cat 2, hoge, dog 3, hoge, bird
お礼
こんなにソースまで書いていただいてありがとうございます! ただ、知識がなくて ちょっとしか解読できず、 一から勉強してみました。 もう少し頑張ってみます!
お礼
ありがとうございました! http://www.ibm.com/developerworks/jp/xml/library/x-xmlperl1.html ここのページを見て勉強してみました。 まだ未完全ですが、 少しずつ出来てきそうです。 もう少し頑張ってみます!