Hatena::ブログ(Diary)

arupaka-_-arupakaの日記

2015-04-20

wikipediaのカテゴリ以下の見出しワードのすべて取得

ruby-mysqlインストール

gem install ruby-mysql

ユーザー名等はMYSQL内で

SELECT user,host,password FROM mysql.user;

等で確認できる.

ruby-mysqlを使ってみる.

以下

http://www.ownway.info/Ruby/ruby-mysql/about

を参考に,

mysqlライブラリの解説:

http://tagomoris.hatenablog.com/entry/20111210/1323502295

以下のコードをためしに書いていると

# coding: utf-8
require 'rubygems'
require 'mysql'

dbname="wiki_table"
hostname="127.0.0.1"
username="root"
password=""
query_text="料理に関するメディア"
query_text=query_text.encode("UTF-8","UTF-8")

#client= Mysql.connect('hostname', 'username', 'password', 'dbname')
con = Mysql::new(hostname, username, password,dbname)



res = con.query('select * from categorylinks where cl_to="料理に関するメディア";')
res.each do |row|

        puts row[0];
end

..lib/mysql/charset.rb:299:in `encode': U+6599 from UTF-8 to ISO-8859-1 (Encoding::UndefinedConversionError)

と怒られる

http://d.hatena.ne.jp/shibason/20090912/1252753970

そこで,

$ cat wiki_word_search.rb
# coding: utf-8
require 'rubygems'
require 'mysql'

dbname="wiki_table"
hostname="127.0.0.1"
username="root"
password=""
#query_text="料理に関するメディア"
#query_text=query_text.encode("UTF-8","UTF-8")
#query_text = query_text.encode("ASCII-8BIT", "ASCII-8BIT")
#client= Mysql.connect('hostname', 'username', 'password', 'dbname')
con = Mysql::new(hostname, username, password,dbname)
#con.options(Mysql::SET_CHARSET_NAME, 'utf8')
res=con.query("show variables like 'character\_set\_%'")
#con << 'SET NAMES utf8'
#print res;
#res = con.query('select * from categorylinks where cl_to="料理に関するメディア";')
res.each do |row|

        puts row.join(",");
end

https://www.softel.co.jp/blogs/tech/archives/1470を参考に

というコードを書くと,

character_set_client,latin1

character_set_connection,latin1

character_set_database,latin1

character_set_filesystem,binary

character_set_results,latin1

character_set_server,latin1

character_set_system,utf8

character_sets_dir,/usr/share/mysql/charsets/

という出力がえられ、クライアントの文字セットがutf-8になっていないことが確認できる.

そこで、クライアントの文字セットを変更するのでなく、文字コードASCII-8BITに変換してやる

ことで、http://www.ownway.info/Blog/2011/08/rubymysql-encodingundefinedconversionerror.htmlを参考にして,

query_text = query_text.encode("ASCII-8BIT", "ASCII-8BIT")というコードをいれることで

$ cat wiki_word_search.rb

# coding: utf-8

require 'rubygems'

require 'mysql'

dbname="wiki_table"

hostname="127.0.0.1"

username="root"

password=""

query_text="料理に関するメディア"

query_text=query_text.encode("UTF-8","UTF-8")

query_text = query_text.encode("ASCII-8BIT", "ASCII-8BIT")

#client= Mysql.connect('hostname', 'username', 'password', 'dbname')

con = Mysql::new(hostname, username, password,dbname)

#con.options(Mysql::SET_CHARSET_NAME, 'utf8')

res=con.query("show variables like 'character\_set\_%'")

#con << 'SET NAMES utf8'

#print res;

res = con.query("select * from categorylinks where cl_to=\"#{query_text}\";")

res.each do |row|

puts row.join(",");

end

以下の出力をえられた。

1448822,料理に関するメディア,こうちやんのしあわせかんたんおりようりれしひ

こうちゃんの幸せ!簡単!お料理レシピ,2009-03-20 19:33:44,こうちやんのしあわせかんたんおりようりれしひ,uppercase,page

1298131,料理に関するメディア,くつくはつと

クックパッド,2009-03-20 19:39:12,くつくはつと,uppercase,page

846594,料理に関するメディア,くるめさいと

グルメサイト,2009-03-21 03:33:26,くるめさいと,uppercase,page

760848,料理に関するメディア,にほんしよくりようしんふん

日本食糧新聞,2009-03-21 13:15:05,にほんしよくりようしんふん,uppercase,page

1063058,料理に関するメディア,につけいれすとらん

日経レストラン,2009-04-11 01:04:42,につけいれすとらん,uppercase,page

1791585,料理に関するメディア,しよせき

食に関する書籍,2009-06-01 05:27:41,しよせき,uppercase,subcat

1909752,料理に関するメディア,かんへろろつそ

ガンベロロッソ,2009-12-13 15:43:18,かんへろろつそ,uppercase,page

2121009,料理に関するメディア,くるめさいと

グルメサイト,2010-11-15 16:35:00,くるめさいと,uppercase,subcat

855862,料理に関するメディア,みしゆらんかいと

ミシュランガイド,2010-11-29 01:37:48,みしゆらんかいと,uppercase,page

2434864,料理に関するメディア,れすとらん

レストラン (雑誌),2011-09-24 07:58:08,れすとらん,uppercase,page

1520137,料理に関するメディア,けてしよくたいせん

ゲテ食大全,2012-04-30 03:00:22,けてしよくたいせん,uppercase,page

1856704,料理に関するメディア,さくひん

料理を題材とした作品,2013-03-24 14:17:16,さくひん,uppercase,subcat

243180,料理に関するメディア,はんくみ

料理番組,2013-06-07 19:07:33,はんくみ,uppercase,subcat

2626262,料理に関するメディア,たなかあいこのはつひれしひえふりてい

田中愛子のハッピーレシピ,2014-12-06 17:39:43,たなかあいこのはつひれしひえふりてい,uppercase,page

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/arupaka-_-arupaka/20150420/1429493932
リンク元