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

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

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

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

Ruby

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

Q&A

解決済

1回答

9973閲覧

Mechanizeによるスクレイピングでsearchに渡す引数が分からない

en_su

総合スコア0

スクレイピング

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

Ruby

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

0グッド

0クリップ

投稿2020/05/14 08:38

編集2020/05/15 00:58

前提・実現したいこと

Rubyにて、Mechanizeというgemを使って、下記サイトをスクレイピングし、添付の赤枠部分のテキスト、URLを取得し、取得したテキスト、URLを出力できるようにしたいと考えております。

赤枠部分のデータ取得がうまくいかず、困っております。
アドバイスいただけると幸いです。

※該当のサイトURL
https://www.jpnsport.go.jp/nishigaoka/tabid/127/Default.aspx

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

下記コードの()内に入れるコードが不明です。

latestArticles = current_page.search('   ')

該当のソースコード

ruby

1require 'mechanize' 2 3agent = Mechanize.new 4agent.user_agent_alias = 'Windows IE 9' 5 6CodeZineTopURL = 'https://www.jpnsport.go.jp/nishigaoka/tabid/127/Default.aspx' 7current_page = agent.get(CodeZineTopURL) 8 9latestArticles = current_page.search('ここにいれるコードが不明') 10 11latestArticles.each do | article | 12 puts "#{ article.inner_text }: #{ CodeZineTopURL + article[:href] }\n" 13end

試したこと

こちらの記事を参考に、下記コードを入れてみましたが、うまくいきませんでした。
https://qiita.com/Atsuyoshi-N/items/096620127da45f99179d

>試したコード

dnn_ctr541_Event_grdPresentMonth > tbody > tr:nth-child > td:nth-child > a dnn_ctr541_Event_grdPresentMonth tbody tr td '//*[@id="dnn_ctr541_Event_grdPresentMonth"]/tbody/tr/td'

補足情報(FW/ツールのバージョンなど)

ruby 2.6.5
イメージ説明

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

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

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

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

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

gouf

2020/05/16 05:40

<table/> のクラスが「event-calendar」となっているので、そこから情報を取得できませんか? セレクタについて不明な点があれば、たとえば CSS Diner のようなページで楽しく学ぶことができます : https://flukeout.github.io/
en_su

2020/05/16 08:20

アドバイスありがとうございます! 「'table.event-calendar td a'」で取得できました。 ※CSS Dinerを参考に勉強します。
gouf

2020/05/16 08:25

解決した場合、他者の回答ないし自己回答として内容をまとめて それをベストアンサーに設定することで、この質問を解決済みにすることができます
en_su

2020/05/16 14:00 編集

色々とありがとうございます。 goufさんのコメントをベストアンサーにしたいのですが、こちらの欄は選択できないのですねm(_ _)m
guest

回答1

0

自己解決

goufさんのアドバイスを参考に下記のとおり記述したところ、希望の要素を取得することができました。

Ruby

1latestArticles = current_page.search('table.event-calendar td a')

投稿2020/05/17 07:42

en_su

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問