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

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

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

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

Q&A

受付中

ruby nokogiri スクレイピング

laboumhaein
dc_jiu

総合スコア16

Ruby

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

2回答

0グッド

0クリップ

600閲覧

投稿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" これの場所は確認ずみです。

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

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

melian

2022/01/07 09:42

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

2022/01/07 10:39

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

回答2

0

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

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

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

投稿2022/01/07 12:56

otn

総合スコア81126

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

総合スコア22722

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

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にしてね

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

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

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

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