ruby-on-rails
  • ruby
  • 2016-04-18 9 views 0 likes 
    0

    各リスティングのリンクとタイトルを削り取ろうとしていますが、うまくいかないようです。Ruby on rails nokogiriでHTMLを掻き集める

    require 'nokogiri' 
    require "net/http" 
    require "uri" 
    require "json" 
    require 'pry' 
    
    final_url = 'https://www.gutenberg.org/ebooks/search/?query=pilgrims+progress' 
    final_url_uri = URI.parse(final_url) 
    response = Net::HTTP.get_response(final_url_uri) 
    response_body = response.body 
    
    parse_response = Nokogiri::HTML(response_body) 
    
    gberg_array = [] 
    
    parse_response.css('booklink > .title, .subtitle').map do |a| 
        post_title = a.text 
        gberg_array.push(post_title) 
    end 
    
    link_array = parse_response.css('li.booklink a').map { |link| link['href'] } 
    
    pry.start(binding) 
    
    +0

    期待した内容とコードの出力内容を追加できますか? –

    +0

    私はあなたの質問に言い直し、いくつかのビットを削除しました。それは良い質問ですか、「うまくいかない」とは正確には何が起こるのかを説明しなければなりません。何が起こると思いますか? –

    答えて

    0

    セレクタを見てみましょう。

    'booklink > .title, .subtitle' 
    

    1)booklink私はあなたがリンクのために行ったように、あなたがクラスbooklinkliを探したいと思いますタグ<booklink>のためになります。

    'li.booklink ...' 
    

    2)の要素を見つけるために、セレクタを使用titleクラスで:

    'li.booklink .title' 
    

    各からテキストを得ることのあなたの技術0の要素を配列に挿入すると効果があります。末尾に新しい行を取り除くには、stripを追加するとよいでしょう。

    関連する問題