[英]Ruby nokogiri parsing Regex
I am parsing a webpage using the following code: 我正在使用以下代码解析网页:
@doc = Nokogiri::HTML(open(url))
links = @doc.css("span[class='reviewCount']").css('a')
links.each do |link|
link["href"]
end
I get a list of href reference as follows 我得到的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
I am trying to get the substring between Reviews- and -City 我正在尝试获取评论-和-城市之间的子字符串
Epicure
Seb_on
Le_cherine
by replacing 通过替换
link["href"]
by 通过
link["href"][[/\"Reviews-"(.*?)"-City"/, 1]
but I do not manage to find the right syntax. 但我无法找到正确的语法。 Could anyone help me to find correct syntax?
谁能帮我找到正确的语法? Thanks.
谢谢。
/Reviews-((.)+)-City/
is the regexp to extract "WHATIWANT" from "XX-Reviews-WHATIWANT-City-XX" /Reviews-((.)+)-City/
是从“ XX-Reviews-WHATIWANT-City-XX”中提取“ WHATIWANT”的正则表达式
"XX-Reviews-WHATIWANT-City"[/Reviews-((.)+)-City/, 1]
#=> "WHATIWANT"
Full solution: 完整解决方案:
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.