Google検索結果を取得する
google検索結果を取得するにはAPIを使う方法がありますが、
無料分は100クエリまでということですので、普通に検索結果から取得してみます。
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use HTML::TreeBuilder; use Jcode; my $search_word = 'perl'; # EUC -> UTF8 に変換 # UTF8環境なので不要 # $search_word = jcode($search_word,'euc')->utf8; # URLエンコード $search_word =~ s/(\W)/'%' . unpack('H2', $1)/eg; my $url = 'http://www.google.co.jp/search?hl=ja&q=' . $search_word . '&lr='; # IE8のユーザーエージェントを設定 my $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)"; # HTMLの内容を取得する my $ua = LWP::UserAgent->new('agent' => $user_agent); my $res = $ua->get($url); my $content = $res->content;
検索対象は「perl」です。
これでHTMLが取得できましたので、解析してみます。
検索結果のURLですが、h3タグの中に入っているようです。
これは「アキラ100%」で検索した時の1結果です 笑
<h3 class="r">
<a href="http://miyatarou.com/comedy/1830/"
onmousedown="return rwt(this,",",",’9′,’AFQjCNF250bPEXnKwY4wP87
kqyYbxC2DGg’,’WJCl1kI7irdVIrwPTPzpBw’,’0ahUKEwjgjYjS-KXUAhWF1
xQKHfk6CBIQFgheMAg’,",",event)">
アキラ100%はR-1も本当に履いてない?前張りの噂と女性芸能人の反応 …
</a>
</h3>
h3タグを@itemsに取得しておいて、
更にその中のaタグ、アトリビュートhrefの内容を表示しています。
# HTML::TreeBuilderで解析 my $tree = HTML::TreeBuilder->new; $tree->parse($content); my @items = $tree->find('h3'); for (@items){ my @a=$_->find('a'); for ( @a ){ print $_->attr('href')."\n"; } }
こんな風に結果が取れてきます。
一応取れているようですが、どういうわけか、ブラウザでアクセスした場合とちょっとHTMLが違うようです。
http://www.google.co.jp/search?hl=ja&q=perl&lr= /url?url=https://ja.wikipedia.org/wiki/Perl&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFggYMAE&usg=AFQjCNFE5JzFlwzErpZQe11A64UIEV00eQ /url?url=https://ja.wikipedia.org/wiki/Perl&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFggcMAI&usg=AFQjCNFE5JzFlwzErpZQe11A64UIEV00eQ http://www.google.co.jp/url?url=http://www.kent-web.com/perl/&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFggnMAM&usg=AFQjCNHhc6en3-laRPR7K7in8iUKP-cW6A http://www.google.co.jp/url?url=http://www.kent-web.com/perl/chap1.html&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFggyMAQ&usg=AFQjCNFpd3GwJwVlNmN5jQZkTLWFb3iElg http://www.google.co.jp/url?url=http://www.tohoho-web.com/wwwperl.htm&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFgg4MAU&usg=AFQjCNEK_m6bL32seOW2yV7O5n_HOvbn3Q http://www.google.co.jp/url?url=http://www.perlplus.jp/perl/&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFgg_MAY&usg=AFQjCNFOeqYEGczhLQs3ara6kPW-RBVR2Q http://www.google.co.jp/url?url=http://www.perlplus.jp/perl/for/index5.html&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFghFMAc&usg=AFQjCNFa7DnOB-kZWA82-1S_RYhf1JbKHA http://www.google.co.jp/url?url=http://d.hatena.ne.jp/perlcodesample/&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFghLMAg&usg=AFQjCNFEwzKbRrMON3l7Ar4ivOUE2pluag /url?url=https://www.ruby-lang.org/ja/documentation/ruby-from-other-languages/to-ruby-from-perl/&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFghRMAk&usg=AFQjCNHvburk5b6rlKI6i47ruq295UtGow http://www.google.co.jp/url?url=http://qiita.com/Arashi/items/f28035d81f98985fcf2b&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFghWMAo&usg=AFQjCNE-GuzMlb0ybPWXIF-ZirOoJAp1_g http://www.google.co.jp/url?url=http://www.tryhp.net/perlcgi.htm&rct=j&frm=1&q=&esrc=s&sa=U&ved=0ahUKEwivqI-b0KvUAhUCTbwKHacPDJ8QFghcMAs&usg=AFQjCNG48V-2vCGPVwQ8zSxwISiAF4-jXQ
どういうわけか上記のURLの幾つかは接続不能です。
ついでに、検索結果一覧にある要約文を取得してみます。
spanタグのclass="st"の中に要約がはいっているようですので、以下のようにします。
@items = $tree->look_down('class', 'st'); print $_->as_text."\n" for @items;
このように取れました。
Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用 性と多様性を重 視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング 言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、 ... Perlによる基礎入門ページです。初心者向けに分かりやすく解説します。 Perlによる初心者向け基礎入門ページです。サンプルコードを中心に、Perlの文法や 構文を学習します。 1997年2月3日 ... とほほのperl入門. トップ > とほほのperl入門. 概要編 倹erlとは クソク」 酵 perlの バージョン ク巐貉セ 歯 実行方法 ウ銚・惚 ファイル指定 カァオニエャオ卸ワ 拒 標準入力 読み込み型 エ・犧・ュ 隙 簡単な実行例 ーッー隹シーューヒエ擎、ーツ 甥 定数・変数・値. プログラミング言語としてPerlを使った方法を学習される方を対象として、Perlによる プログラム記述方法を 確認していきます。PerlのプログラミングとしてはCGIとしてWWW サーバと連携した利用方法がよく使われます が、まず単独で動作するプログラムの作成 ... foreach文はfor文と似た構文です。foreachは値の集合であるリストを指定すると、リスト に含まれる値の数だけ順に繰り返しを行います。(リストについては別のページで詳しく見 ていきます)。 foreach文の書式は次の ようになっています。 foreach 変数 (リスト){ ... Perl学習サイト - サンプルコードPerl入門. Perlは「テキスト処理」「システム管理」「Web 開発」の三つの 分野で優れたプログラム言語です。 開発の現場でPerlが利用されている ことは多いので、ITエンジニアとしてぜひ基礎的なことをマスターしておきましょう。 Perlはすばらしい言語です。ドキュメントもすばらしいし、Perlコミュニティもすばらしい コミュニティです 。 しかし、言語はかなり大きく、間違いなく複雑です。 もっとシンプルで 直交的な言語や、最初から洗練さ れたオブジェクト指向の機能が組み込まれた言語を 求め ... 2016年9月16日 ... はじめにPHPerのぼくが、Perlを触った思い出に基本的なことを書いていこうと思います 。 というのも、毎回Google先生に聞くのもいいのですが無くなる記事も多くあるので自分 でまとめちゃおうという魂胆です(`・ω・´)ゞ初心者のぼくでも少しだけ ... これらの問題をすべてカバーしてくれるのがPerl(以下Perl、パールと読む)言語です。 Perlは、テキストベー スで動作するコンパイラ言語ですので、作成するのはテキスト ファイルだけです。 このテキストページにアクセスがあればPerlが自動でコンパイルして 実行 ...
もしかすると、これだけでもある程度共起語が取れるかもしれません。
ディスカッション
コメント一覧
まだ、コメントがありません