Size: a a a

2020 March 08

V

Vitaliy in RubyRush
источник

V

Vitaliy in RubyRush
А можете показать структуру общую, где у Вас вес, цена и картинка ? За основу скорее всего, можете взять xpath doc.xpath(//ul[@id="thumbs_list_frame"]/li и дальше уже его перебирать, подставляя тег a для нужного варианта. Либо как вариант, сделать итоговую структуру из хэша, где у Вас будет картинка, вес и цена товара.

doc.xpath(//ul[@id="thumbs_list_frame"]/li).map.with_index { |el, index|
{
 weight: el[index].text,
 price: верный xpath для цены[index].text,
 image: el.xpath('/a')[index]
}
источник

А

Александр in RubyRush
На данный момент вижу так
quantity = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label').count
name = doc.xpath('//*[@id="center_column"]/div/div[2]/div[2]/div[2]/h1')
# for .... по count.
size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label/span[1]')[0]
price = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label/span[2]')[0]
image = doc.xpath('//ul[@id="thumbs_list_frame"]/li/a')[0]
# Запись в список на каждой проходке
источник

А

Александр in RubyRush
я просто пока не разбирался как работает в руби map. Только с Пайтоном до этого активно работал
источник

P

Pavel in RubyRush
а почему вы парсите страницу через xpath и всякие регулярки? У вас какое-то ТЗ с условием 'ТЫ ДОЛЖЕН СТРАДАТЬ!' ? Просто есть куда более декларативные и простые подходы вытащить любую инфу из страницы
источник

P

Pavel in RubyRush
при этом есть не мало хороших мануалов на эту тему. При чем на русском языке
источник

А

Александр in RubyRush
Да, нужно через Хпас) и если не хватает применять регулярку
источник

V

Vitaliy in RubyRush
Александр
На данный момент вижу так
quantity = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label').count
name = doc.xpath('//*[@id="center_column"]/div/div[2]/div[2]/div[2]/h1')
# for .... по count.
size = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label/span[1]')[0]
price = doc.xpath('//*[@id="attributes"]/fieldset/div/ul/li/label/span[2]')[0]
image = doc.xpath('//ul[@id="thumbs_list_frame"]/li/a')[0]
# Запись в список на каждой проходке
очень длинные xpath, попробуйте сократить до такого примера //li[contains(@id, "thumbnail")]. Я вижу что у Вас в каждом теге есть id, как минимум к ним можно привязаться.
источник

А

Александр in RubyRush
Vitaliy
очень длинные xpath, попробуйте сократить до такого примера //li[contains(@id, "thumbnail")]. Я вижу что у Вас в каждом теге есть id, как минимум к ним можно привязаться.
Хпас брал просто со страницы, что выдавался. Как полностью заработает вникну как его улучшить. Спасибо)
источник

А

Александр in RubyRush
Vitaliy
очень длинные xpath, попробуйте сократить до такого примера //li[contains(@id, "thumbnail")]. Я вижу что у Вас в каждом теге есть id, как минимум к ним можно привязаться.
сейчас обратил внимание, что через такой запрос //li[contains(@id, "thumbnail")] беру название товара. Оно просто одинаковое на одной странице поэтому в цикл не попало.
источник

V

Vitaliy in RubyRush
Александр
я просто пока не разбирался как работает в руби map. Только с Пайтоном до этого активно работал
Вы решили перейти с питона на руби?
источник

А

Александр in RubyRush
Подвернулась вакансия где переучивают за деньги на руби во время  испыта.
Решил попробовать)
Синтаксис во многом похож. Не привычно конечно но не такая разница как в Java или С
источник

V

Vitaliy in RubyRush
Александр
Подвернулась вакансия где переучивают за деньги на руби во время  испыта.
Решил попробовать)
Синтаксис во многом похож. Не привычно конечно но не такая разница как в Java или С
после руби, многих питон не вставляет )
источник

А

Александр in RubyRush
ну я пока еще не настолько вник))) Очень не привычно все делать через точку)
Ну и инфы питону (особенно на начальных этапах) как по мне гораздо больше!
Но язык интерсный)
источник

VV

Vadim Venediktov in RubyRush
Александр
ну я пока еще не настолько вник))) Очень не привычно все делать через точку)
Ну и инфы питону (особенно на начальных этапах) как по мне гораздо больше!
Но язык интерсный)
А что именно через точку?
источник

L

Lem in RubyRush
Александр
ну я пока еще не настолько вник))) Очень не привычно все делать через точку)
Ну и инфы питону (особенно на начальных этапах) как по мне гораздо больше!
Но язык интерсный)
что за точки?
источник

А

Александр in RubyRush
a.text.strip и т.д... я про это. Что конструкции могут быть через точку оч большие
источник

VV

Vadim Venediktov in RubyRush
А, вызов методом по цепочке? А в питоне как?
источник

VV

Vadim Venediktov in RubyRush
Также, вроде
источник

VV

Vadim Venediktov in RubyRush
источник