読者です 読者をやめる 読者になる 読者になる

代々木で働く超新米エンジニアの足跡

代々木で働くエンジニアです。超新米です。

スクレイピングまとめ

スクレイピング

概要 Web上の特定のデータを抽出すること

言語 Ruby

require Nokogiri open-uri

方法
あるサイトに複数の記事があり、その記事のタイトル、urlをスクレイピングしたいとする。
はじめに必要なことは、そのタイトルとurlのセレクタを知ることで、その条件と方法。
まず、条件は複数の記事に共通のセレクタをとること。
  クローラーセレクタを目印に巡回しているので、各自共通のセレクタにしないとなにを目印にすればいいかわらなくなるから。
次にその方法
    データを取りたいWebサイト上で要素の検証
    虫眼鏡をクリック
    タグが欲しい箇所をクリック
    右画面にセレクタが表示される
    他の記事にも同じものがあるか確認
後は、Rubyに記述する方法
    必要なものをrequireする
    uri = スクレイピングしたいサイトのurl を書く
    doc = Nokogiri::HTML(open(uri),nil,"utf-8") を書く
     →多分、Nokogiriで指定されたurlの情報をdocにほうりこんでる
    doc.css("セレクタA").each do |node|
     →このセレクタAは、タイトルとurlセレクタを含むタグより上の階層で複数の記事に共通するセレクタ(この条件にあてはあはまるのは1つとは限らない)
   row = []

   row.push(node.css("セレクタ B").text)
 →今回だと、titleのセレクタ .textはテキスト部分だけを抽出してくれる
   row.push(node.css("セレクタC").attribute("src").value) 
   row.push(node.css("セレクタD").attribute("href").value)
       →srcタグとhrefタグの書き方の例
    puts row.join("¥t)
     →タブ区切りにした
end