🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Q&A

解決済

1回答

565閲覧

Ruby スクレイピング 表示されない仕様?

mbaby__8

総合スコア66

Ruby

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

1グッド

1クリップ

投稿2021/01/15 05:59

Rubyのkaminariを用いて、外国企業の業績をスクレイピングをしたく、下記サイトの損益計算書の所をスクレイピングしたのですが、

リンク内容

数字のところがハイフンになってスクレイピング出来ませんでした。

フリーキャッシュフローや損益計算書の文字は表示できるのですが、

一部をスクレイピングさせないような設定などがされているのでしょうか?

教えて頂けると幸いです。

require 'open-uri' require 'nokogiri' require 'sanitize' url = 'https://jp.tradingview.com/symbols/NASDAQ-AAPL/?utm_campaign=symbol-info&utm_medium=widget_new&utm_source=jp.tradingview.com' charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) body = doc.at_css(".tv-widget-fundamentals__value") File.open("./nokogiri.txt","w") do |f| f.write(body) end
beskey3👍を押しています

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

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

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

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

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

m.ts10806

2021/01/15 06:06

そもそも、スクレイピングの許可はとったのでしょうか。
mbaby__8

2021/01/15 06:45

スクレイピング自体初めてなので、とっていないです。 上記のコードは試しに動くかのサンプルで用いています。
m.ts10806

2021/01/15 06:48

「制御されてないからいい」「規約に書いてないからいい」ではないです。 人のサイトの情報をアクセスしたうえで勝手に抜いてくるわけですから。 判断つかないなら手を出さないことを強くすすめます。 訴えられても文句は言えません。「知らなかった」では済まないという意味です。
mbaby__8

2021/01/15 07:02

そうなんですね。 丁寧にありがとうございます。
guest

回答1

0

ベストアンサー

Webサイトの作りとして、サーバーサイドで情報をHTMLに埋め込んでダウンロードさせる方式と、データ無しのHTMLをとりあえずダウンロードさせてからJavaScriptで情報をあらためて取得して埋め込む方式があって、後者の場合、最初にダウンロードしてきたHTMLに情報は入ってません。

これは対策としてそうしている、という場合もあるかもですが、初期表示までの時間の短縮だったり、スクロール等のユーザー操作に応じてデータをダウンロードして動的に埋め込むような仕組みにするためだったり、色んな理由で行う事なので、対策など関係なく普通に珍しい話ではないです。(非同期通信、Ajax、等の用語をもし知らないなら、まずはそこから勉強してみましょう)

そういったサイトをスクレイピングする場合、HTMLをダウンロードしてきて解析するツールではなく、ブラウザを自動操作する系のツールを使用します。「selenium」というツールが有名ですが、最近だと「puppeteer」というChromeを自動操作するためのライブラリをGoogleが出していたりもします。興味があれば調べてみてください。

投稿2021/01/15 12:12

umau

総合スコア831

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問