0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Wikipedia データをスクレイピングする

Last updated at Posted at 2022-10-13

前提

  • Gem の使い方について
    • ruby 2.7.4p191
    • wikipedia-client (1.15.0)

サマリー

  • Gem の機能
    • 指定されたタイトルのページ情報を取得する
    • ページ情報の IF がいくつか用意されている
      • タイトル、サマリー、テキスト全体、、
  • 特定項目の内容を取得したい場合は、自前で抽出する必要がある
    • 例. テキスト全体から正規表現で抽出
  • 標準 IF にない情報は、生データ取得 IF から別途取得すれば良い

使い方

require 'wikipedia'

# ローカル設定を行う
wikipedia_client = Wikipedia::Client.new(Wikipedia::Configuration.new(domain: 'ja.wikipedia.org'))

title = '植物'
page = wikipedia_client.find(title)

# ページタイトル
page.title
=> "植物"

# ページ URL
page.fullurl
=> "https://ja.wikipedia.org/wiki/%E6%A4%8D%E7%89%A9"

# ページ概要
page.summary
=> "植物(しょくぶつ、英: plant)とは、生物区分のひとつ。\n広辞苑の第5版によると「植物」は、草や木などのように、根があって場所が固定されて生きているような生物のことで、動物と対比させられた生物区分である。\nそれに対し、生物学にも歴史があり、二界説ないし五界説のような分類法が採用されていた時代があった。そこでは菌類(キノコやカビ)、褐藻(ワカメなど)なども植物と見なしていた。対してここ数十年の生物学では、分類群としての名称はあくまで「植物界」である為、現在も定義がひとつに定まっていない。陸上植物を含む単系統群として植物を定義するが、どの単系統を選ぶかにより複数の定義が並立している。狭い定義では陸上植物のみを植物として認めるが、より広い定義では緑色植物全体を植物としたり、紅色植物、灰色植物をも植物に含めたりする。また、「植物」と「植物界」という言葉の違いについても、乱暴に『「植物」は植物界のシノニムだ』と言ってしまう人と、『そうではない』という人など、生物学者たちの中でも意見は分かれている。古い二界説や五界説では植物とみなされていた菌類や褐藻や光合成原生動物(ミドリムシや珪藻など)は、「系統が異なる」として、現在(2012年)では生物分類学上は植物とみなされていない。だが、さらにややこしいことに、生態学的には、こういう分類法では無い。例えば生態学では「光合成を行うワカメや珪藻は、植物(生産者)」とする。"

# ページ内容(マークアップ)
page.content
=> ...

# ページ内容(テキスト)
page.text
=> ...

# 特定項目内容(テキスト)
matches = (/== 関連項目 ==(.+?)===? 外部リンク ===?/m).match(page.text)
matches[1].split(/\R/).compact.delete_if {|s| s.strip.empty? }
=> ["樹木 - 草本", "花 - 葉 - 根 - 茎", "生物の分類", "木、木の一覧", "花卉"]

# 生データ
page.raw_data
=> ...
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?