yuya-yuzen

【Ruby】Qiitaのトレンド記事をWebスクレイピングで取得する

2021/05/01
2021/05/01

僕はQiitaのトレンド記事を毎日チェックしています。
そして、気になるタイトルがあれば読むようにしています。
でもよくよく考えると、わざわざ自分がサイトにアクセスしなくてもいい気がしてきました。

必要なのは記事タイトルとその記事のURLだけです。
というわけで、コマンド一発でこの2つを取得できるようにしてみました。

手順

  1. スクレイピングのコードを書く
  2. ターミナルで実行

スクレイピングのコードを書く

require 'open-uri'
require 'nokogiri'

url = 'https://qiita.com/'
html = open(url) { |f| f.read }
doc = Nokogiri::HTML.parse(html, nil, 'utf-8')

articles = doc.xpath("//a[@class='css-qrra2n']")
articles.each do |article|
    print "\n" # 見やすくするため、記事ごとに空行を挟む
    puts article.text # 記事タイトル
    puts article.attribute('href').value # 記事URL
end

ターミナルで実行

$ ruby qiita.rb
記事タイトル1
https://qiita.com/user_name1/items/aaaaaaaa

記事タイトル2
https://qiita.com/user_name2/items/bbbbbbbb

記事タイトル3
https://qiita.com/user_name3/items/cccccccc

(以下略)

あとがき

ひとまず今回は、ターミナル上に出力するものを作ってみました。
初めてWebスクレイピングというものをやってみましたが、意外と簡単にできて驚きました。
他にも毎日チェックしているサイトがあるので、そちらでもやってみたいと思います。

参考


Share:
ゆうや