Tweet広告を非表示にするもっと読むコメントを書く2016-03-27RubyのBenchmarkモジュールを使って、sleepメソッドが効いているか確認してみる。rubyopen-uriとnokogiriを使ってホテル予約サイトをスクレイピングしているが、sleepメソッドがきちんと効いているか気になったので、Benchmarkモジュールを使って計測してみた。方法sleepメソッドを含むメソッドと含まないメソッドを2種類作る。endend処理はホテル予約サイトの情報を取得して配列に入れいている。1.675842)わかりやすく3秒スリープを入れてみたが、動作を確認できた。14:52RubyのBenchmarkモジュールを使って、sleepメソッドが効いているか確認してみる。Tweet広告を非表示にするもっと読むコメントを書く2016-03-25Excelで文字化けせずに開けるCSVをRubyで作るついでに文字コードについて学んでみた。(あいまい)rubyRubyでCSVファイルを作り、Excelで開くと文字化けする。解決法を探した所、この記事の通りやったら解決できた。解決できたはいいが、やっていることが全くわからないのでいろいろ調べてみる。エンコーディングされたCSVファイルを開くUTF-8でエンコーディングされたCSVファイルをExcelで開くと、下図のように文字が化けてしまう場合があります。Excelでは何も指定がない場合はファイルをShift-JISで開く動作のため文字化けが発生します。指定がないとUTF-8でエンコーディングされたCSVファイルをShift-JISで開いてしまうらしい。BOMヘッダを付けてあげるとUTF-8でエンコーディングされいているファイルとして認識してくれるらしい。BOMとは文字コードを認識するラベル用な印象?そもそもUTF-8とかShift-JISとか規格が違うくらいのイメージしか無かったからこれを機会に少し学んで見る。「プログラマのための文字コード技術入門」を読んだ符号化文字集合と文字符号化方式の違いまず符号化文字集合について。文字を表現するためには、まずは文字の集合が必要である。コンピュータでそれを表すためには、それぞれの文字に一意な番号をふって置く必要がある。スペースなら32番、「a」なら97番という感じ。番号をふっておけば、その番号に従って、ディスプレイ上に文字を表示することができる。Wikipediaコンピュータに認識できるようにいろいろな文字にラベルを貼っているらしい。そのラベルを貼った文字の集合を符号化文字情報というとのこと。コンピューター上では最終的には全てが0と1のデジタルで表現されます。符号化文字集合だけがあっても実際にそれをコンピューター上ではどのような0,1の並びで表現するのか、ということが決まっていないとコンピューターでは扱えません。その0,1の並びを定義しているのが文字符号化方式です。Wikipediaそしてラベルが貼ってある文字集合をコンピュータが読み込めるようにする方式を定義してあるのが、文字符号化方式らしい。UTF-8やShift_JISが含まれるとのこと。文字を整理した文字集合と、文字集合をコンピュータに読み込ませるための方式の2つに規格があるらしく、Excelが文字化けした今回のケースは、文字集合をUTF-8方式でコンピュータに認識できるように表現しなくてはいけないのにShift_JISで読みこんだから文字化けしたということのようだ。「プログラマのための文字コード技術入門」を読んだこの図はわかりやすい。ちなみに名前だけよく聞くUnicodeは世界で使われる全ての文字を共通の文字集合にて利用できるようにしようという考えでつくられているらしい。9[2]、Javaなどで利用されている。13:45Excelで文字化けせずに開けるCSVをRubyで作るついでに文字コードについて学んでみた。(TypeError)エラー内容を確認してみる。TypeError文字列であるべきところにハッシュが入っているよーとのこと。Nokogiriで解析するために集めたURLをリスト化したCSVを開いているが、ゴミがありそうな項目はない。調べていると、CSVを作成する際に文字化けせずにExcelでも開けるようにBOMを入れた事を思い出す。Excel(エクセル)で文字化けしないUTF-8のCSVファイルを出力する方法BOMが付いていない場合は、シフトJISと解釈して開いてしまうようで、そのため文字化けします。コマンドを使って調べることができる。linesBOMを除いたCSVを作成し、実行した所問題なく処理ができた。参考記事:Excelで文字化けせずに開けるCSVをRubyで作るついでに文字コードについて学んでみた。BOM付きファイルを読み込んだ時に起きるエラーTweet広告を非表示にするもっと読むコメントを書く2016-03-24Rubyで文字列から半角数字だけを抽出する方法。文字にマッチするようになります(これは否定文字クラスと呼ばれます)。文字クラス[^0-9]で0-9以外の文字列を抽出して、""と置換しています。16:33Rubyで文字列から半角数字だけを抽出する方法。BOM)」となるので、エディタなどで開かずにBOMが付いてるかどうかを確認できる。確認方法Tweet広告を非表示にするもっと読むコメントを書く2016-03-24宿泊予約サイトの情報をopen-uriで開いて、nokogiriで解析してみる。15:20宿泊予約サイトの情報をopen-uriで開いて、nokogiriで解析してみる。RubyのBenchmarkモジュールを使って、sleepメソッドが効いているか確認してみる。Excelで文字化けせずに開けるCSVをRubyで作るついでに文字コードについて学んでみた。BOM付きファイルを読み込んだ時に起きるエラーRubyで文字列から半角数字だけを抽出する方法。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。