当記事の目的
Rubyでヤフーニュースの主要トピックを取得する。
Rubyがインストールされていることを確認。
> ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32]
最新のchromeドライバーを取得、パスを通す(ブラウザも最新バージョンに更新)
モジュールをインストール
ffiとselenium-webdriverとnokogiri
> gem install ffi selenium-webdriver nokogiri
ニュース取得スクリプトを作成
news.rb
require "nokogiri"
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10
URL = "https://news.yahoo.co.jp"
driver.get URL
doc = Nokogiri::HTML driver.page_source.encode("UTF-8")
doc.css('.topicsList_main li.topicsListItem a').each do |title|
puts title.inner_text
end
driver.quit
実行
> ruby news.rb
(selenium実行時のメッセージを省略)
中国公船が領海侵入 2日連続
岐阜が「出口戦略」5指標示す
調停中断 親「子に会えない」
看護師と家族に誹謗中傷 神戸
正恩氏 プーチン氏に祝電
ソウル 遊興施設を営業禁止に
リトル・リチャード氏 死去
室井佑月と米山隆一氏 結婚へ