質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

2438閲覧

mechanizeというライブラリだけがどうしてもrequireできません

退会済みユーザー

退会済みユーザー

総合スコア0

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/05/07 11:54

前提・実現したいこと

プログラミングは本当に最近始めたばかりの初心者です。
Rubyを使ってwebサイトから情報を取得するためにとスクレイピングをしようとしており、一覧を複数のページに渡って遷移しながらそれぞれのページの特定要素を抜き出していくということがやりたいのですが、mechanizeというライブラリがなぜかrequireしようとしてもエラーが発生してしまいます。

発生している問題・エラーメッセージ

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mechanize (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/username/Desktop/data/test.rb:1:in `<main>'

該当のソースコード

require 'mechanize' agent = Mechanize.new page = agent.get("") elements = page.search('') puts elements

稚拙な質問で申し訳ありません。どなたかアドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

mechanizeをインストールしていないのでは?

投稿2018/05/07 12:06

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/07 12:20

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory ターミナルでgem install mechanizeと打ち込んで実行したら上記のようなエラーメッセージが出てきました。そこで今度はsudo gem install mechanizeと打ち込んだら Building native extensions. This could take a while... ERROR: Error installing mechanize: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/unf_ext-0.0.7.5 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/gems/unf_ext-0.0.7.5/ext/unf_ext/gem_make.out とこのように出てきました。 インストールの方法から間違っているのでしょうか?
otn

2018/05/07 12:29

mechanizeで必要とする別のgemsの一部はCで書かれています。インストール時にCプログラムのコンパイルが行われます。 コンパイルの際に必要なライブラリが不足しているというエラーです。 多分Macですよね?「mac mechanize インストール」で検索してみて下さい。
退会済みユーザー

退会済みユーザー

2018/05/08 10:46

調べたら解決するための一連の流れが載ってるところがありました! どうやらlibxml2やlibxsltやlibiconvなどがインストールされてなかったのがmechanizeのインストールに失敗したした原因だったようです。 これらをインストールしてからmechanizeをインストールするコマンドを打ったところ、無事にインストールされたようです。 今度はちゃんとrequireされて結果が出てきました!取り敢えずrequireされない問題は解決です! アドバイスありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問