Size: a a a

2020 March 08

V

Vitaliy in RubyRush
Александр
Подскажите.
Полсе парсинга страницы получается строка состоящая из 1 o r 2 or 3 or 4 позиций веса . Как можно разделить на отдельные элементы?
Регулярками или сплитом не получится ибо могут быть гр, кг, количество или еще какое странное измерение.
Без примера кода, сложно делать выводы...
источник

А

Александр in RubyRush
на примере
size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label')
вернет
5 Unidades x 69gr 5 Unidades x 207gr
Нужно делать именно с хпас
источник

А

Александр in RubyRush
60 Comprimidos120 Comprimidos
это с другой страницы вывод
источник

V

Vitaliy in RubyRush
Александр
на примере
size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label')
вернет
5 Unidades x 69gr 5 Unidades x 207gr
Нужно делать именно с хпас
Вам их нужно перебрать, подставляя, грубо говоря номер уникального значения в конце xpath

size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label')[0].

Либо поработать над уникальностью xpath
источник

А

Александр in RubyRush
супер, отлично
источник

А

Александр in RubyRush
[0] ставил внутри скобок и не работало
источник

V

Vitaliy in RubyRush
Александр
супер, отлично
Если нужен массив значений, можете посмотреть в сторону map.with_index
источник

V

Vitaliy in RubyRush
size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label').map.with_index {|value, index| value[index]  }
источник

А

Александр in RubyRush
да, спасибо. Сейчас разбираюсь с этим
Как-раз искал как запилить чтоб индексы менялись от 1 до .. в зависимости от количества размеров товара
источник

А

Александр in RubyRush
А актуально будет для руби получать количество вложений в список li.
И потом циклом вызывать по очереди вес, цену и картинку для каждого индекса?
источник

V

Vitaliy in RubyRush
Александр
А актуально будет для руби получать количество вложений в список li.
И потом циклом вызывать по очереди вес, цену и картинку для каждого индекса?
А что получается в результате такого приема ? Попробуйте запустить код, но Вам ведь нужно будет дописывать ‘label’ везде, для перебора.
источник

А

Александр in RubyRush
цикл пока не запускал. Но в запросе на картинку не работает, да. А в остальном вроде как надо все
image = doc.xpath('//*[@id="thumbs_list_frame"]')[0]
источник

А

Александр in RubyRush
мне просто потом нужно в файл записать по каждой позиции все инфо отдельно
источник

V

Vitaliy in RubyRush
Александр
цикл пока не запускал. Но в запросе на картинку не работает, да. А в остальном вроде как надо все
image = doc.xpath('//*[@id="thumbs_list_frame"]')[0]
картинка тоже имеет label и она находится в li?
источник

V

Vitaliy in RubyRush
Александр
цикл пока не запускал. Но в запросе на картинку не работает, да. А в остальном вроде как надо все
image = doc.xpath('//*[@id="thumbs_list_frame"]')[0]
Можете структуру div в pastebin закинуть ?
источник

А

Александр in RubyRush
Vitaliy
картинка тоже имеет label и она находится в li?
в li. Сейчас найду и скопирую
источник

V

Vitaliy in RubyRush
Александр
в li. Сейчас найду и скопирую
скопируйте лучше весь div
источник

А

Александр in RubyRush
источник

А

Александр in RubyRush
через регулярку вытаскиваю только 1ую картинку из 2ух дублирующихся по размеру.
источник

V

Vitaliy in RubyRush
если я правильно вижу, то картинка у Вас лежит по тегу a, в структуре он еще должен участвовать. image = doc.xpath(//ul[@id="thumbs_list_frame"]/li/a)

image.map.with_index { |el, index| el[index] }
источник