機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

Rubyでmechanizeでブログをキーワード検索して最初の投稿を取得する

プログラミング

僕のブログ “https://yuis-programming.com/” で、記事を検索して最初に出てきた記事のタイトルを取得する、というテストコードになります。

やってること:
1. 検索窓をクリックで表示
1. フォームに検索したい値を定義
1. フォームを送信
1. 検索結果のHTMLをnokogiriでパースしてタイトルを取得

require 'mechanize'
require 'logger'

agent = Mechanize.new
agent.log = Logger.new "mech.log"
agent.user_agent_alias = 'Mac Safari'

page = agent.get "https://yuis-programming.com/"

page.link_with(:xpath => '//*[@id="menu-navigator"]/li[4]/a').click
page.form.field_with(xpath: '//*[@id="s"]').value = 'magic'
# page.form.field_with(xpath: '//*[@id="s"]').value = 'ruby'
search_results = agent.submit page.form_with(xpath: '//*[@id="searchform"]')

require 'nokogiri'
require 'open-uri'

Encoding.default_external = 'UTF-8'

doc = Nokogiri::HTML(search_results.body)
puts firstpost = doc.xpath('//div/div/header/h2/a')[0].text

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Ruby windowsのソフトウェアを外部コマンドから開く・起動する
Ruby sinatra 使い方
Ruby hash キーが重複していた場合は2つの値を加算する
Ruby jrubyをインストールしてからGEMのパスが変わってしまった場合の対処
Rubyでhashや配列をeach_with_indexで最初と最後の処理だけ特別な処理をする
Rubyで配列の集合演算
JRubyでRuby製クロスプラットフォームGUIアプリを作ってみた


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu