Как разобрать исходный код HTML с ruby ​​/ nokogiri? - PullRequest
1 голос
/ 27 октября 2010

Я успешно использовал синтаксический анализ ruby ​​(1.8) и nokogiri для извлечения данных с веб-страниц с лицевой стороны.

Однако теперь мне нужно извлечь некоторые данные из серии страниц, где данные находятся в тегах «meta» в исходном коде страницы.

Одна из строк мне нужна:

<meta name="geo.position" content="35.667459;139.706256" />

Я пытался использовать xpath put, но не смог сделать это правильно.

Любая помощь в отношении того, какой синтаксис необходим, будет принята с благодарностью.

Спасибо

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Это хороший случай для селектора атрибутов CSS .Например:

doc.css('meta[name="geo.position"]').each do |meta_tag|
  puts meta_tag['content'] # => 35.667459;139.706256
end

Эквивалентное выражение XPath практически идентично:

doc.xpath('//meta[@name = "geo.position"]').each do |meta_tag|
  puts meta_tag['content'] # => 35.667459;139.706256
end
1 голос
/ 27 октября 2010
require 'nokogiri'

doc = Nokogiri::HTML('<meta name="geo.position" content="35.667459;139.706256" />')
doc.at('//meta[@name="geo.position"]')['content'] # => "35.667459;139.706256"
...