使用 Nokogiri 仅抓取可见元素

Scrape only visible elements with Nokogiri

我正在尝试像这样使用 Nokogiri 抓取一些网站

Nokogiri::HTML(open(url_path))

当我得到这个 HTML 时,我搜索了一个值,但是 Nokogiri 选择了所有元素,包括我不需要的隐藏元素。

如何只获取 display: block 个元素或排除 display: none 个元素?

 url = "https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers"
 page = Nokogiri::HTML(open(url))  
 page.css('td b a').each do |line|
   puts line.text  # "Spanish"        
 end

您可以像这样指定忽略隐藏元素:

page = Nokogiri::HTML(open(url_path))
page.at_xpath("//input[not (@type='hidden')]") # get all visible input fields