Есть ли лучший способ извлечь видимый текст на веб-странице с помощью Nokogiri? В настоящее время я использую метод inner_text
, однако этот метод считает много JavaScript как видимый текст. Единственный текст, который я хочу захватить, - это видимый текст на экране.Nokogiri захватить только видимый inner_text
Например, в IRB, если я следующий в Руби 1.9.2-P290:
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open("http://www.bodybuilding.com/store/catalog/new-products.jsp?addFacet=REF_BRAND:BRAND_MET_RX"))
words = doc.inner_text
words.scan(/\w+/)
Если я искать слово «функция» Я вижу, что он появляется в 20 раз в списке, однако если я перехожу к http://www.bodybuilding.com/store/catalog/new-products.jsp?addFacet=REF_BRAND:BRAND_MET_RX, слово «функция» не появляется нигде в видимом тексте.
Могу ли я игнорировать JavaScript или есть лучший способ сделать это?
Удивительный! Это работает намного лучше, спасибо! – akaDanPaul
это работает, но вы должны избегать «и» в условном режиме, поскольку он предназначен для потока управления и имеет другой порядок операций, чем предполагаемый оператор '&&'. Кроме того, существует оператор '! ~', Который вы можете использовать вместо 'not = ~' – Ben