2017-11-16 16 views
2

を示していないが、私はpets_array = []鋸山の例Iは、端子を介してこれを実行しようとすると、私はデータを表示/解析できる配列(ルビー)

を入力するとき、私は何も

私のコードを見ていないです以下のとおりである。

require 'HTTParty' 
require 'Nokogiri' 
require 'JSON' 
require 'Pry' 
require 'csv' 

page = HTTParty.get('https://newyork.craigslist.org/search/pet?s=0') 

parse_page = Nokogiri::HTML(page) 

pets_array = [] 

parse_page.css('.content').css('.row').css('.result-title hdrlnk').map do |a| 
    post_name = a.text 
    pets_array.push(post_name) 
end 

CSV.open('pets.csv', 'w') do |csv| 
    csv << pets_array 
end 

Pry.start(binding) 
+0

' $(「行」) '.... –

答えて

1

たぶん、あなたは.result-info内部クラス.result-title.hdrlnkと各アンカータグ、.result-row.rowsにアクセスし、.content可能性が正確に:

page = HTTParty.get 'https://newyork.craigslist.org/search/pet?s=0' 
parse_page = Nokogiri::HTML page 
pets_array = parse_page.css('.content .rows .result-row .result-info .result-title.hdrlnk').map &:text 
p pets_array 
# ["Mini pig", "Black Russian Terrier", "2 foster or forever homes needed Asap!", ...] 

マップを使用しているときは、pets_array変数を使用して、各繰り返し要素にテキストを保存できます。プッシュする必要はありません。

あなたは配列に格納されたデータを書き込みたい場合は、あなたがプッシュすることができます(あなたが空白のCSVファイルを取得するための理由)、直接、空の配列として再定義する必要はありません:

require 'httparty' 
require 'nokogiri' 
require 'csv' 

page = HTTParty.get 'https://newyork.craigslist.org/search/pet?s=0' 
parse_page = Nokogiri::HTML page 
pets_array = parse_page.css('.content .rows .result-row .result-info .result-title.hdrlnk').map &:text 
CSV.open('pets.csv', 'w') { |csv| csv << pets_array } 
+0

ありがとうブラウザのコンソールで、そのページ上の任意の要素を示していないが、上記の『すべて』が必要であること?私のコードの全体を貼り付けることができますか?私は、必要に応じて、私は少しそれで遊ぶことができます...上記試みたが、エラーがスローされました。 –

+0

作業コードは[こちら](https://gist.github.com/vnhnhm/8326c20da01b582c033de6ca154fbabf)ですが、私はCSVの一部を省略しました。 –

関連する問題