У меня есть скрипт, который очищает HTML-страницы статей интернет-магазина. Я тестирую набор из 22 страниц, из которых 5 страниц со статьями содержат описание продукта, а остальные — нет.
Этот код выводит правильную информацию на экран:
if doc.at_css('.product_description')
doc.css('div > .product_description > p').each do |description|
puts description
end
else
puts "no description"
end
Но теперь я застрял на том, как правильно это сделать, чтобы выводить найденные описания продуктов в массив, откуда я пишу их в файл CSV.
Перепробовал несколько вариантов, но ни один пока не работает. Если я заменю puts description
на @description << description.content
, то все описания статей окажутся в верхних строках CSV, хотя они не относятся к статьям в этой строке.
Когда я также заменяю «без описания» на @description = "no description"
, тогда первые 14 строк в моем CSV получают по 1 букве «без описания» каждая. Выглядит забавно, но это не совсем то, что мне нужно.
Если нужно больше кода, просто кричите!
Это код CSV, который я использую в скрипте:
CSV.open("artinfo.csv", "wb") do |row|
row << ["category", "sub-category", "sub-sub-category", "price", "serial number", "title", "description"]
([email protected] - 1).each do |index|
row << [
@categories[index],
@subcategories[index],
@subsubcategories[index],
@prices[index],
@serial_numbers[index],
@title[index],
@description[index]]
end
end
row
- person pguardiario   schedule 29.03.2013