@chelo_vek

Нужно спарсить товары из категории https://www.petsonic.com/snacks-huesos-para-perros/, почему не проходит по массиву из url товаров?

5d417a03851a9186761032.png
Нужно спарсить товары из категории https://www.petsonic.com/snacks-huesos-para-perros/ и пройтись по ним и собрать информацию о каждом в формате имя+цена+вес+картинка.Проблема в том, что я не могу пройти по массиву из url товаров.
Я получаю массив из ссылок на товары, но не могу пройти по каждому
require 'curb'
require 'nokogiri'
require 'csv'
url = ARGV.first
  category_page = Nokogiri::HTML(Curl.get(url).body_str)
# разбиваем данные на отдельные товары
  list_of_li_products = category_page.xpath('//*[@id="product_list"]/li')
    
  all_products_url = []
# прохожусь по всем товарам
list_of_li_products.each do |product|
  # беру url товара и добавляю
  all_products_url << product.xpath('.//a[@class="product-name"]/@href')
end
	 puts all_products_url #как видно на скрине, массив из url заполнен правильно

    #ПРОБЛЕМА ТУТ, почему-то не проходит по каждому url
	all_products_url.each do |product_url|	
		# товар
		puts product_page = Nokogiri::HTML(Curl.get(product_url).body_str)
	end
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
oh_shi
@oh_shi
require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open('https://www.petsonic.com/snacks-huesos-para-perros/'))
doc.xpath('.//a[@class="product-name"]/@href').each do |url|
  puts url
  page = Nokogiri::HTML(open(url))
end
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы