Size: a a a

2021 November 24

И

Иван in RubyRush.ru
Привет всем! Кто получал такую ошибку? Работаю на манджаро, такой файл есть по этому пути
источник

V

Valentin in RubyRush.ru
Друзья, есть файлик, спаршенный nokogiri.
В нем таблица формата (заголовки и урл упразднил для примера)

<table class="wikitable sortable">
<tbody>
<tr>
<td>1</td>
<td><i><a href="url" title="Малхолланд Драйв">Малхолланд Драйв</a></i></td>
<td><a href="url" title="Линч, Дэвид">Дэвид Линч</a></td>
<td>2001</td>
</tr>
...
<tbody>
<table>


Нужно вытащить данные кроме первого <td>
Так можно вытащить 2 и 3

table.css('tr').each do |el|
 el.css('td > i > a').text
 el.css('td > a').text
end


Но 1 и 4 так не разделяются.
Что я делаю не так?
источник

VV

Vadim Venediktov in RubyRush.ru
А просто по индексу из рубишного массива достать?
источник

VV

Vadim Venediktov in RubyRush.ru
table.css('tr').each do |el|
 puts el.css('td')[2]
end
источник

V

Valentin in RubyRush.ru
Не выходит, пробовал. Чот я не то делаю, уже каска трещину дала, возьму консультацию.
источник

N

Nostya in RubyRush.ru
а  можешь кинуть файлик? нужен текст из каждого td после первого?
источник

VV

Vadim Venediktov in RubyRush.ru
вот, наверное
источник

VV

Vadim Venediktov in RubyRush.ru
А что пишет?
источник

V

Valentin in RubyRush.ru
table.css('tr').each do |el|
 p el.css('td')[1].content
end
=> undefined method `content' for nil:NilClass
источник

VV

Vadim Venediktov in RubyRush.ru
Значит внутри какого-то из tr не нашлось 2-го td 🤷‍♂️
источник

VV

Vadim Venediktov in RubyRush.ru
Если у массива взять по индексу элемент, которого нет, то будет nil
источник

V

Valentin in RubyRush.ru
Есть мнение, что там не массив
источник

VV

Vadim Venediktov in RubyRush.ru
Как проверить?
источник

V

Valentin in RubyRush.ru
поэтому все nil.
p table.size
=> undefined method `size' for #<Nokogiri::XML::Element:0x00000000063e4c60> (NoMethodError)
источник

VV

Vadim Venediktov in RubyRush.ru
Ну table точно не массив, т.к. вон написано Nokogiri::XML::Element — это и есть название класса
источник

V

Valentin in RubyRush.ru
я и говорю.
источник

VV

Vadim Venediktov in RubyRush.ru
Тогда давайте уточню: а где «там»?
источник

VV

Vadim Venediktov in RubyRush.ru
В переменной table у вас объект класса Nokogiri::XML::Element, а в ошибке написано undefined method `content' for nil:NilClass
источник

VV

Vadim Venediktov in RubyRush.ru
Стало быть метод content вы вызывает не у table
источник

V

Valentin in RubyRush.ru
p table.css('td')[1].content
=> "Малхолланд Драйв"

так выводит
источник