[英]Parsing encoded tags in Ruby XML document using Nokogiri and regex
[英]Ruby nokogiri parsing Regex
我正在使用以下代码解析网页:
@doc = Nokogiri::HTML(open(url))
links = @doc.css("span[class='reviewCount']").css('a')
links.each do |link|
link["href"]
end
我得到的href参考列表如下
/Restaurant_Review-g187147-d719052-Reviews-Epicure-City_Ile_de_France.html#REVIEWS
/Restaurant_Review-g187147-d6958622-Reviews-Seb_on-City_Ile_de_France.html#REVIEWS
/Restaurant_Review-g187147-d8766885-Reviews-Le_cherine-City_Ile_de_France.html#REVIEWS
我正在尝试获取评论-和-城市之间的子字符串
Epicure
Seb_on
Le_cherine
通过替换
link["href"]
通过
link["href"][[/\"Reviews-"(.*?)"-City"/, 1]
但我无法找到正确的语法。 谁能帮我找到正确的语法? 谢谢。
/Reviews-((.)+)-City/
是从“ XX-Reviews-WHATIWANT-City-XX”中提取“ WHATIWANT”的正则表达式
"XX-Reviews-WHATIWANT-City"[/Reviews-((.)+)-City/, 1]
#=> "WHATIWANT"
完整解决方案:
require 'nokogiri'
html = <<-EOF
<span class="reviewCount">
<a href="XX-Reviews-WHATIWANT-City-XX" target="_blank" onclick="XX;">1,361 reviews</a>
</span>
EOF
doc = Nokogiri::HTML(html)
doc.xpath("//span[@class='reviewCount']/a").each do |node|
puts node.attribute("href").to_s[/Reviews-((.)+)-City/, 1]
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.