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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

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

Q&A

解決済

2回答

283閲覧

ruby エラーの対処方法を教えてください。

tyoujobfideshom

総合スコア13

Ruby

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

0グッド

0クリップ

投稿2019/01/10 04:17

ruby をインストールしましたが、うまく作動されてなくて、なぜなのか、教えていただきたいです。
ソース:

-- coding: utf-8 --

require 'rubygems'
require 'mechanize'
require 'kconv'

Setting

url = 'https://suumo.jp/chintai/hyogo/sc_kobeshinada/nj_204/'
#'https://suumo.jp/chintai/hyogo/sc_kobeshinada/'
#'http://suumo.jp/chintai/hyogo/sc_kobeshisuma/'
#'https://suumo.jp/chintai/hyogo/sc_kobeshinada/'

#'https://suumo.jp/chintai/hyogo/sc_kobeshinada/nj_204/'
open('1.html', 'w'){|io| io.write(url.body) }

#############################

AGENT_ALIASES = [
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36'
]

agent = Mechanize.new
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
agent.cookie_jar.clear!
agent.follow_meta_refresh = true
agent.user_agent = AGENT_ALIASES[0]
agent.max_history = 2

エラー:

C:\Users\NEC04\Desktop\suumo>ruby suumo.rb
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/net-http-persistent-3.0.0/lib/net/http/persistent.rb:205:in <class:Persistent>': uninitialized constant Process::RLIMIT_NOFILE (NameError) from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/net-http-persistent-3.0.0/lib/net/http/persistent.rb:190:in <top (required)>'
from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require'
from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/mechanize-2.7.6/lib/mechanize.rb:6:in <top (required)>' from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in require'
from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in rescue in require' from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in require'
from suumo.rb:3:in `<main>'

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

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

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

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

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

y_waiwai

2019/01/10 04:19

このままではコードやエラーメッセージが読みづらいです 質問を編集し、<code>ボタン、出てくる’’’の枠の中にコードを貼り付けてください
tyoujobfideshom

2019/01/10 10:21

すみませんでした。今度そのようにします。
guest

回答2

0

以前にも同様な質問がありましたが、mechanizeから呼び出されているコードに、Windows版のRubyでは動かないコードが含まれているのが要因です(当該のIssue)。

投稿2019/01/10 04:27

maisumakun

総合スコア145123

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

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

tyoujobfideshom

2019/01/11 02:48

解決しました。 ありがとうございます。
guest

0

ベストアンサー

ライブラリのWindowsへの考慮漏れです。

C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/net-http-persistent-3.0.0/lib/net/http/persistent.rb

の205行目に、
DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4
という行があるので、それを
DEFAULT_POOL_SIZE = 10
とかに書き直してください。

投稿2019/01/10 04:26

otn

総合スコア84423

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

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

tyoujobfideshom

2019/01/11 02:49

教えていただいた方法で解決しました。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問