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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Ruby

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

Q&A

解決済

1回答

569閲覧

【Ruby】MetaInspectorというGEMで一部メソッドが使用できない?

kaori_oka

総合スコア176

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Ruby

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

0グッド

0クリップ

投稿2020/01/24 03:38

前提・実現したいこと

現在、サイト調査のためにスクレイピングを行っています。
メタ情報を取得するために「metainspector」というgemを使用しています。

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

使用方法としては、下記のような感じらしいです。

  1. gem install metainspectorでインストール
  2. require "metainspector"を記載
  3. page = MetaInspector.new("http://hogehoge~")でページの情報代入
  4. puts page.descriptionのような使用方法が可能

しかし、keywordsを取得しよううとするときだけ下記のようなエラーがでます。

console

1Traceback (most recent call last): 2./meta_test.rb:6:in `<main>': undefined method `meta_keywords' for #<MetaInspector::Document:0x0000000005692c10> (NoMethodError)

該当のソースコード

ruby

1require "metainspector" 2 3meta = MetaInspector.new("https://chiebukuro.yahoo.co.jp/") 4puts meta.title 5puts meta.description 6puts meta.meta_keywords

試したこと

下記のサイトにmethod一覧が掲載されていたので、そのmethodを使用しているのですが前述したようなエラーとなります。

MetaInspector
https://www.rubydoc.info/gems/metainspector/1.15.0

ためしに、サポートされているmethodで、hogr.to_hashというものがあるので使用してみたところ下記のような結果となりました。

ruby

1require "metainspector" 2 3meta = MetaInspector.new("https://chiebukuro.yahoo.co.jp/") 4 5puts meta.to_hash

console

1{"url"=>"https://chiebukuro.yahoo.co.jp/", "scheme"=>"https","host"=>"chiebukuro.yahoo.co.jp", 2"root_url"=>"https://chiebukuro.yahoo.co.jp/", "title"=>"Yahoo!知恵袋 - みんなの知恵共有サービス", "best_title"=>"Yahoo!知恵袋 - みんなの知恵共有サービス", "author"=>nil, "best_author"=>"プライバシー - 利用規約 - メディアステートメント - ガイドライン - ご意見・ご要望 - ヘルプ・お問い合わせ JASRAC許諾番号:9008249113Y38200 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved.", "description"=>"みんなでつくる便利でうれしい知恵の共有サービス。参加している方がお互いに知恵や知識をQ&Aで共有できるサイトです。", "best_description"=>"みんなでつくる便利でうれしい知恵の共有サービス。参加している方がお互いに知恵や知識をQ&Aで共有できるサイトです。", "h1"=>["Yahoo!知恵袋", "「ふとした疑問」「ちょっとした悩みごと」気軽に“質問”してみよう!"], "h2"=>["解決済みのQ&A", "回答受付中のQ&A", "投票受付中のQ&A", "Yahoo!知恵袋カテゴリ", "総合Q&Aランキング", "回答者ランキング", "Yahoo!知恵袋からのお知らせ"], "h3"=>[], "h4"=>[], "h5"=>[], "h6"=>[], 3 4######## 省略 ######## 5 6"meta_tags"=>{"name"=>{"description"=>["みんなでつくる便利でうれしい知恵の共有サービス。参加している方がお互いに知恵や知識をQ&Aで共有できるサイト です。"], 7"keywords"=>["知恵,知識,質問,回答,悩み,相談,解決,教えて,疑問,意味,方法"]}, 8"http-equiv"=>{"content-type"=>["text/html; charset=utf-8"], 9"content-style-type"=>["text/css"], "content-script-type"=>["text/javascript"]}, 10"property"=>{"og:title"=>["Yahoo!知恵袋 - みんなの知恵共有サービス"], 11"og:description"=>["みんなでつくる便利でうれしい知恵の共有サービス 12。参加している方がお互いに知恵や知識をQ&Aで共有できるサイトです。"] 13 14######## 省略 ########

上記のような出力がされ、その中に
"keywords"=>["知恵,知識,質問,回答,悩み,相談,解決,教えて,疑問,意味,方法"]}, とあるので、
持ってこれそうなのですが...

このgemを使用するときは、meta_keywordsのmethodが使用できないから、
hashから引っこ抜くしかないのでしょうか。

ご存知の方が居たら教えていただきたく!

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

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

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

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

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

guest

回答1

0

ベストアンサー

参照しているドキュメントが古いのでは?
これが最新みたいです。
https://www.rubydoc.info/gems/metainspector/5.2.1

投稿2020/01/24 03:41

taichi730

総合スコア318

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

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

kaori_oka

2020/01/24 03:49

ありがとうございます。 最新ドキュメント見まして下記でkeyword取得できました! ``` puts meta.meta['keywords'] ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問