Как найти текст на странице с помощью Nokogiri - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь найти лучший способ найти слово на странице с помощью Nokogiri.

У меня есть страница, на которой есть следующий текст.

<p>Modelo: ABC123-A</p>

Я хотел бы найти текст "Modelo:" , а затем получить номер модели после него.

Я осмотрелся, но могуКажется, не найти.Итак, я подумал, что смогу опубликовать здесь и посмотреть, сможет ли кто-нибудь с опытом Нокогири пролить свет на это для меня.

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Используйте p:contains селектор и получите соответствующие p узлы.

doc = Nokogiri::HTML('<html><body><p>Modelo: ABC123-A</p><br/><p>Nothing here</p><p>Modelo: 4321</p></body></html>')
doc.css('p:contains("Modelo")').map { |x| x.text.split(': ').last }
#=> ["ABC123-A", "4321"]
0 голосов
/ 10 июня 2018

Простой пример:

doc = Nokogiri::HTML('<html><body><p>Modelo: ABC123-A</p></body></html>')
doc.css('p').first.content  # => Modelo: ABC123-A
str.split( ': ' )[-1]  # => ABC123-A

Вы также можете попробовать Oga , он легче, чем Nokogiri.

...