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

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

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

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

Q&A

解決済

1回答

1900閲覧

rubyでdef化する方法について

terate

総合スコア103

Ruby

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

0グッド

0クリップ

投稿2016/02/25 14:13

編集2016/02/25 14:45

下記ブログを参考にスクレイピングの練習をしてみようと思うのですが、仮にこのコードの内容をメソッドにして実行する場合、defを使ってどのような書き方ができるでしょうか?

参考ブログ

ruby

1require 'open-uri' 2require 'nokogiri' 3 4url = ‘http://b.hatena.ne.jp/5 6charset = nil 7html = open(url) do |f| 8charset = f.charset 9f.read 10end 11 12doc = Nokogiri::HTML.parse(html, nil, charset) 13 14doc.xpath(//div[@class=”entry-contents”]).each do |node| 15# title 16p node.css(‘h3′).inner_text 17p node.css(‘blockquote’).inner_text 18p node.css(‘a’).attribute(‘href’).value 19 20file_name = “hatena.txt” 21File.open(file_name, ‘a’) {|file| 22file.write node 23} 24end

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

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

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

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

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

t_obara

2016/02/25 14:17 編集

そもそも、タイトルと聞きたいことと合ってませんよね? 「rubyでdef化する方法を知りたい」とかにならないものでしょうか。
terate

2016/02/25 14:45

直しました!お手柔らかに!
guest

回答1

0

ベストアンサー

ruby

1#!/usr/bin/env ruby 2# -*- encoding:utf-8 -*- 3# 4require 'open-uri' 5require 'nokogiri' 6 7def extract(url) 8 opt = {} 9 opt['User-Agent'] = 'Opera/9.80 (Windows NT 5.1; U; ja) Presto/2.7.62 Version/11.01 ' 10 charset = nil 11 html = open(url, opt) do |f| 12 charset = f.charset 13 f.read 14 end 15 16 doc = Nokogiri::HTML.parse(html, nil, charset) 17 18 doc.xpath('//div[@class="entry-contents"]').each do |node| 19 #title 20 p node.css('h3').inner_text 21 p node.css('blockquote').inner_text 22 p node.css('a').attribute('href').value 23 24 file_name = "hatena.txt" 25 File.open(file_name, 'a') {|file| file.write node } 26 end 27 28end 29 30extract 'http://b.hatena.ne.jp'

こういうこと?

投稿2016/02/25 14:34

編集2016/02/25 14:35
NCC1701

総合スコア1680

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

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

terate

2016/02/25 15:45

大変助かります!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問