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

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

ただいまの
回答率

91.35%

  • Ruby

    5177questions

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

  • Ruby on Rails

    5057questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

スクレイピングでエラーが出ます

受付中

回答 1

投稿 2017/12/07 04:45

  • 評価
  • クリップ 0
  • VIEW 79

ninpig04

score 8

スクレイピングをやろうとサンプルを動かしたのですが、以下の様なエラーメッセージが出ます。

sample.rb:20: syntax error, unexpected tIDENTIFIER, expecting ')'
...de.xpath("./p[@class="itemTitle"]/span/text()").to_s
...                               ^
sample.rb:20: syntax error, unexpected ')', expecting keyword_end
...lass="itemTitle"]/span/text()").to_s

# 必要なgemを読み込み。読み込み方やその意味はrubyの基本をおさらいして下さい。
require 'nokogiri'
require 'anemone'

# 後述。
opts = {
    depth_limit: 0
}


# AnemoneにクロールさせたいURLと設定を指定した上でクローラーを起動!
Anemone.crawl("http://www.nicovideo.jp/ranking", opts) do |anemone|
    # 指定したページのあらゆる情報(urlやhtmlなど)をゲットします。
    anemone.on_every_page do |page|
        i = 1 # 後で使います。

        # page.docでnokogiriインスタンスを取得し、xpathで欲しい要素(ノード)を絞り込む
        page.doc.xpath("//*[@class='itemContent']").each do |node|
            # 更に絞り込んでstring型に変換
            title = node.xpath("./p[@class="itemTitle"]/span/text()").to_s
            # 更に絞り込んでstring型に変換
            viewCount =
            node.xpath("./div[@class='itemData']/dl[contains(@class,'view')]/dd/text()").to_s.trim


            # 表示形式に整形
            puts i.to_s + "位:再生数:" + viewCount + " | " + title
            puts "\n———————————————–\n"
            i += 1 # iは順位を示しています。あるランキングを上から順番に取り出しています。
        end # node終わり
    end # page終わり
end # Anemone終わり

どこにミスが存在しているのでしょうか??
OS:MAC
Ruby 2.3.1

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

「^」が指し示しているところにミスが存在しています。

sample.rb:20: syntax error, unexpected tIDENTIFIER, expecting ')'
...de.xpath("./p[@class="itemTitle"]/span/text()").to_s
...                               ^

文法上、その位置には識別子「itemTitle」ではなく閉じカッコ 「)」が期待されています。

あわせて読みたい:
Uncaught SyntaxError: missing ) after argument list (同じ人かと思ったよ)

投稿 2017/12/07 08:03

編集 2017/12/08 23:16

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

ただいまの回答率

91.35%

関連した質問

  • 解決済

    「超初歩」rubyのscrapingについて[anemone]

    前提・実現したいこと ルビーでwebスクレイピングをしようと考えているのですが なかなか上手く行きません…。タグ名を取得したいのですがなかなか出来なくて とても初歩的な質問で

  • 受付中

    スクレイピングの文の削除

    前提・実現したいこと Rubyでスクレイピングを行なっていますが、Yahoo知恵袋 の質問文だけ抽出さたいのですが、他の文の削除方法をご教授願いたいです。 ちなみに短すぎる文

  • 解決済

    Nokogiri、anemone、open-uriを使って、指定したサイトをクロール、スクレイピング

    前提・実現したいこと Nokogiri、anemone、open-uriを使い、指定したウェブサイトをクローリング、スクレイピングして、画像リンクURLを取得し、そのURLから画

  • 解決済

    [Ruby] anemone+nokogiri Webスクレイピングについて

    rubyの anemone+nokogiriを用いて Webスクレイピングをしたいと思っています。 require 'anemone' require 'nokogiri' r

  • 解決済

    [Ruby] Nokogiriでスクレイピング

    RubyのNokogoriでweb上から特定の情報を抜き出す作業をしています。 HTMLがとてもシンプルで、 <html> <body> <h1>It works!</h1

  • 解決済

    [Ruby]webスクレイピング

    webスクレイピングで、<span>の中身をとりだしたいんですが、上手く実行されません。 HTML内で求めるspanが何番目にあるか数えたり、検索機能で調べたり、コード内の変数

  • 受付中

    Mechanizeのスクレイピングでvalueを取得するには

    inputタグの中に含まれているvalue要素をスクレイピングで抜き出したいです。 agent = Mechanize.new page = agent.get("http:/

  • 解決済

    Rubyで作るクローラーについて

    前提・実現したいこと はじめまして。 Rubyで「キーワードを検索したら、Googleの検索結果上位10サイトの記事タイトルと見出しをテキストで出力できる」というツールを作っていま

同じタグがついた質問を見る

  • Ruby

    5177questions

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

  • Ruby on Rails

    5057questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。