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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

484閲覧

Rails のスクレイピングの方法について(ページの横断検索,nokogiri)

Yohei_2525

総合スコア8

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/09/27 06:30

編集2017/09/27 07:12

###前提・実現したいこと
Scrapingの練習をしています。以下の情報の取得先のURL1ページからはうまくスクレイピングができました。他方、page1~10まで横断的にデータを取得する場合はどのようにコードを入力すればよろしいでしょうか?(例、page=1→page=10まで)
url = 'https://matome.naver.jp/tech?page=1'

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

###該当のソースコード
Ruby & Rails

```ここに言語を入力 # URLにアクセスするためのライブラリの読み込み require 'open-uri' require 'open_uri_redirections' namespace :scrape do desc 'NaverまとめのTechページからタイトルを取得' task :naver_title => :environment do # スクレイピング先のURL url = 'https://matome.naver.jp/tech?page=1' charset = nil html = open(url, allow_redirections: :all) do |f| charset = f.charset # 文字種別を取得 f.read # htmlを読み込んで変数htmlに渡す end # htmlをパース(解析)してオブジェクトを作成 doc = Nokogiri::HTML.parse(html, nil, charset) doc.xpath('//li[@class="mdTopMTMList01Item"]').each do |node| # タイトルの取得 puts node.css('h3').inner_text end end end

###試したこと
url = 'https://matome.naver.jp/tech?page=1..10'としましたがうまくいきませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)

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

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

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

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

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

m.ts10806

2017/09/27 07:09

プログラムコード(およびエラーメッセージ)は```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)正しく反映されているかどうかは質問編集画面のプレビューを見ながら編集していってください。
Yohei_2525

2017/09/27 07:13

初めての書き込みでわかりませんでした。教えていただき誠ありがとうございます!
guest

回答1

0

(1..10).map{|page| 'https://matome.naver.jp/tech?page=%d' % page}.each do |url| end

こんな感じでURLをつくる

投稿2017/09/27 06:42

kiichi54321

総合スコア1984

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

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

Yohei_2525

2017/09/27 06:50

以下のように書き換えました。(部分的な表示になります)。 # スクレイピング先のURL # url = 'https://matome.naver.jp/tech?page=1' (1..10).map{|page| 'https://matome.naver.jp/tech?page=%d' % page}.each do |url| end charset = nil 以下のエラーが出てまだうまくいかない状況です。 rake aborted! NameError: undefined local variable or method `url' for main:Object Did you mean? rule URI
kiichi54321

2017/09/27 07:08

基本的すぎるので、自分でがんばってください。ヒントは、each 文です。
Yohei_2525

2017/09/27 07:13

少し頑張ってみます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問