Очистка сети: необходим разделитель данных - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь отредактировать сайт allocine как упражнение, и мой вывод следующий:

Movie Name 
Rating 1 Rating 2 

Пример:

Coco
4,14,6

Forrest Gump
2,64,6

это должно быть вместо:

Movie Name

Rating 1

Rating 2 

Надеюсь, вы поможете мне!

require 'open-uri'
require 'nokogiri'
require 'csv'

array = []


for i in 1..10
  url = "http://www.allocine.fr/film/meilleurs//?page=#{i}"
  html_file = open(url).read
  html_doc = Nokogiri::HTML(html_file)


  html_doc.search('.img_side_content').each do |element|
    array << element.search('.no_underline').inner_text
    array << element.search('.note').inner_text
  end





end
puts array


csv_options = { col_sep: ',', force_quotes: true, quote_char: '"' }
filepath    = 'allocine.csv'

CSV.open(filepath, 'wb', csv_options) do |csv|
  array.each { |item| csv << [item] }
end

1 Ответ

0 голосов
/ 23 мая 2018

Вы забыли проанализировать заметки, поэтому в консоли они появляются без пробела.Что вы можете сделать, это добавить each и заполнить ваш массив следующим образом:

element.search('.note').each do |data|
  array << data.inner_text
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...