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

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

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

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

Q&A

2回答

922閲覧

ruby nokogiri スクレイピング

laboumhaein

総合スコア16

Ruby

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

0グッド

0クリップ

投稿2022/01/07 09:31

編集2022/01/07 09:33
require 'bundler/setup' require 'open-uri' require 'nokogiri' require 'csv' def get_parsed_html(url) html = URI.open(url) do |f| charset = f.charset f.read end Nokogiri::HTML.parse(html,nil,'utf-8') end path = "result_1.csv" #事前に取得したurlが行ごとに格納されている url_array = Array.new CSV.foreach(path) do |row| url_array << row[0] end binding.pry #ここのbinding.pryでurl_arrayにurlが入っていることは確認済 url_array.each do |url| doc = get_parsed_html(url) doc.css('body > div > div').each do |total| end

**url_array.each do |url| ** の部分で

initialize': No such file or directory @ rb_sysopen - https:/aaaaaaaaaaaaaaaaa (Errno::ENOENT) from /Users//ruby/3.0.0/open-uri.rb:31:in open'
from /Users//3.0.1/lib/ruby/3.0.0/open-uri.rb:31:in open' from lib/0106.rb:19:in get_parsed_html'
from lib/0106.rb:36:in block in <main>' from lib/0106.rb:34:in each'
from lib/0106.rb:34:in `<main>'

このエラーがでます。
path = "result_1.csv" これの場所は確認ずみです。

どこが間違っているのでしょうか。
よろしくお願いします。

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

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

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

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

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

melian

2022/01/07 09:42

例えば、 get_parsed_html('http:/www.google.com/') などのように URL が形式として間違っているなどの理由が考えられます。
laboumhaein

2022/01/07 10:39

確認しましたが対象のURLに飛べます。ブラウザに表示されているURLで試しましたがエラーでした
guest

回答2

0

initialize': No such file or directory @ rb_sysopen - https:/aaaaaaaaaaaaaaaaa

https://となるべきところがhttps:/であるためにURLと見なされず、普通のファイル名と見なされて、そんなファイルは無いと言うことでエラーになってます。

あと、でたらめなインデントで書く癖は直した方が良いです。

投稿2022/01/07 12:56

otn

総合スコア84538

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

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

0

このエラーはURI.open(url) の部分で存在しない url が与えられたということを意味しています。
csvにある全てを ブラウザーで確認してみてください。
最初ではないです、全部です。
一番ありそうなのは 空行がある。多分最後に。
あ、お尻に改行が残ってません?それも。

url_array.each do |url| の直下に 今どのURLなのか、をputs してみてはどうでしょう
改行の存在の確認もするなら pp の方がよいかな

投稿2022/01/07 10:25

編集2022/01/07 10:32
winterboum

総合スコア23331

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

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

laboumhaein

2022/01/07 10:41

csvにある全てを ブラウザーで確認してみてください。 最初ではないです、全部です。 >> URLを1つにしブラウザから取得したURLで試しましたが同一エラーが発生しております。 一番ありそうなのは 空行がある。多分最後に。 あ、お尻に改行が残ってません?それも。 >> CSVファイルをオールクリアしてURL1つだけ置いて改行せずに試しましたが同一エラーです。 url_array.each do |url| の直下に 今どのURLなのか、をputs してみてはどうでしょう >>puts結果は改行されていないURLが表示されました。
winterboum

2022/01/07 10:47

url_array.each do |url| ではなく url="。。。。。" と定義して doc = get_parsed_html(url) を試すとどうなります? 。。。。 は実際のurlにしてね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問