急上昇Buzzword抽出器
Buzzword抽出
先日Yahooさんの検索ランキングがリニューアルされたこともあり、今流行っているBuzzwordを自動抽出可能なプログラムを作成します。Buzzwordを抽出する対象はYahoo検索ランキング、Googleトレンド、Naverトピックワードランキング、kizasi、TweetBuzzです。これらのメディアから現在の検索、ブログ、twitterでのBuzzwordを把握出来ます。
BuzzwordSample
Buzzword抽出器により出力したデータは以下の内容になりました。定性的な評価から一番旬なデータで量を持ったページはYahoo! SearchRankingだと思います。Google Trendは1日のデータが1件ずつで過去1週間のデータを記録しているので、Yahooに比べると劣ってしまいます。またブログやTweet情報はやや新鮮さに欠けるのと現在のTrendを表している単語が少ないように感じました。
DataFormat
Lavel : data1 \t data2 \t data3 .....Yahoo! SearchRanking
YahooBuzzword : 菅野美穂 オサート 河西里音 福岡大仏 武井咲 ガンバ大阪 トキハソース 青山草太 高橋愛 北総鉄道 ロアッソくんGoogle Trend
GoogleBuzzword : 堺雅人 仲里依紗 南海トラフ プエルトリコ Wbc ローマ法王 メタンハイドレート WBC 野球Naver TopicwordRanking
NaverBuzzword : 平愛梨 ももいろクローバ... Aimer 大島優子 白鵬 一休.com 田中れいな 由紀さおり 市井紗耶香 小泉麻耶 藤井フミヤ ナイナイ岡村 IKEA 朝食 全ツイート履歴 神田愛花 菅野美穂 江角マキコ 東京 桜Kizasi
KizasiBuzzword : 阿部主将 放送記念日 小学校卒業式 吉田美和 センバツ高校野球 春分 パルテナ 修了式 女満別 泉佐野市TweetBuzz Hotkeyword
TweetBuzzword : フィギュアスケート 民主党 香川真司 AKB48 山口組 本田圭佑 キム・ヨナ 安倍晋三 サイバー攻撃 シャープ 自民党 台湾 WBC TPP IPS細胞 サムスン 新垣結衣 広島 キプロス パク・シフ 名古屋市 北海道 佳子 IPアドレスAll
All : 菅野美穂 オサート 河西里音 福岡大仏 武井咲 ガンバ大阪 トキハソース 青山草太 高橋愛 北総鉄道 ロアッソくん 堺雅人 仲里依紗 南海トラフ プエルトリコ Wbc ローマ法王 メタンハイドレート WBC 野球 平愛梨 ももいろクローバ... Aimer 大島優子 白鵬 一休.com 田中れいな 由紀さおり 市井紗耶香 小泉麻耶 藤井フミヤ ナイナイ岡村 IKEA 朝食 全ツイート履歴 神田愛花 江角マキコ 東京 桜 阿部主将 放送記念日 小学校卒業式 吉田美和 センバツ高校野球 春分 パルテナ 修了式 女満別 泉佐野市 フィギュアスケート 民主党 香川真司 AKB48 山口組 本田圭佑 キム・ヨナ 安倍晋三 サイバー攻撃 シャープ 自民党 台湾 WBC TPP IPS細胞 サムスン 新垣結衣 広島 キプロス パク・シフ 名古屋市 北海道 佳子 IPアドレス
Buzzword抽出器
下のPythonコードを実行すると上のメディアに掲載されているBuzzwordを出力します。
#!/usr/bin/env python # -*- coding: utf-8 -*- # buzzword抽出器 import sys,re,urllib,urllib2 f = open( 'buzzword.txt', 'w' ) opener = urllib2.build_opener() ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/ 534.51.22' referer = 'http://www.yahoo.co.jp/' opener.addheaders = [( 'User-Agent', ua ),( 'Referer', referer )] buzzword = [] ## yahoo module yahoo_url = "http://searchranking.yahoo.co.jp/" try: content = opener.open( yahoo_url ).read() if re.compile( r'<ul class="patB">(.|\n)*?</ul>', re.M ).search( content ) is not None: tmp = re.compile( r'<ul class="patB">(.|\n)*?</ul>', re.M ).search( content ).group(0) data = re.compile( r'<a href=.*?>(.*?)</a>', re.M ).findall( tmp ) info = "YahooBuzzword : " for node in data: buzzword.append( node ) info = info + node + "\t" f.write( info + "\n" ) except Exception: print "Failed Yahoo Buzzword" ## google module google_url = "http://www.google.co.jp/trends/" try: content = opener.open( google_url ).read() if re.compile( r'<span class="hottrends-carousel-single-trend-title">.*?</span>', re.M ).search( content ) is not None: data = re.compile( r'<span class="hottrends-carousel-single-trend-title">(.*?)</span>', re.M ).findall( content ) info = "GoogleBuzzword : " for node in data: buzzword.append( node ) info = info + node + "\t" f.write( info + "\n" ) except Exception: print "Failed Google Buzzword" ## naver module naver_url = "http://topicwords.naver.jp/" try: content = opener.open( naver_url ).read() if re.compile( r'<span class="mdSRList01TtlTxt">.*?</span>', re.M ).search( content ) is not None: data = re.compile( r'<span class="mdSRList01TtlTxt">(.*?)</span>', re.M ).findall( content ) info = "NaverBuzzword : " for node in data: buzzword.append( node ) info = info + node + "\t" f.write( info + "\n" ) except Exception: print "Failed Naver Buzzword" ## kizasi module kizasi_url = "http://kizasi.jp/" try: content = opener.open( kizasi_url ).read() if re.compile( r'<td><a href=".*?">(.*?)</a></td>', re.M ).search( content ) is not None: data = re.compile( r'<td><a href=".*?">(.*?)</a></td>', re.M ).findall( content ) info = "KizasiBuzzword : " for node in data: buzzword.append( node ) info = info + node + "\t" f.write( info + "\n" ) except Exception: print "Failed Kizasi Buzzword" ## tweetbuzz module tweetbuzz_url = "http://tweetbuzz.jp/" try: content = opener.open( tweetbuzz_url ).read() if re.compile( r'<div class="section-lv3" id="cloud"><h3>.*?</h3><ol><li><strong>(.*?)</strong></li></ol></div>', re.M ).search( content ) is not None: tmp = re.compile( r'<div class="section-lv3" id="cloud"><h3>.*?</h3><ol><li><strong>(.*?)</strong></li></ol></div>', re.M ).search( content ).group(0) data = re.compile( r'<a href=".*?">(.*?)</a>', re.M ).findall( tmp ) info = "TweetBuzzword : " for node in data: buzzword.append( node ) info = info + node + "\t" f.write( info + "\n" ) except Exception: print "Failed Tweet Buzzword" ## all all = sorted( set( buzzword ), key=buzzword.index ) info = "All : " for node in all: info = info + node + "\t" f.write( info + "\n" ) f.close()
- 作者: Alex Martelli,Anna Martelli Ravenscroft,David Ascher,鴨澤眞夫,當山仁健,吉田聡,吉宗貞紀
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/06/26
- メディア: 大型本
- 購入: 11人 クリック: 423回
- この商品を含むブログ (85件) を見る