使用Nokogiri我已经刮了一个页面,我试图找到总结果失败。如何处理使用Nokogiri时使用
HTML片段(DOC)
<div class="total_count">
<b>Returned:</b> 97 results
</div>
把那总数=> 97
doc.search(".total_count").text.gsub(/[^0-9]/,'') #=> 497 !Oops
我怎样才能让过去
?
它返回的文字是这样的
doc.search(".total_count").text
"\r\n Returned:\u00A0497\u00A0results\r\n"
因此,使用doc.at(".total_count").text.match('\d+')
给 “496”
的节点是
=> [#<Nokogiri::XML::Element:0x1762914 name="div" attributes=[#<Nokogiri::XML::Attr:0x1762878 name=
class" value="total_count">] children=[#<Nokogiri::XML::Text:0x1767618 "\r\n ">, #<Nokogiri::XML
:Element:0x1767e1c name="b" children=[#<Nokogiri::XML::Text:0x1767a98 "Returned:">]>, #<Nokogiri::X
L::Text:0x1767834 "\u00A0497\u00A0results\r\n">]>]
引入nokogiri,Ruby版本
C:\Ruby200>nokogiri -v
DL is deprecated, please use Fiddle
# Nokogiri (1.6.0)
---
warnings: []
nokogiri: 1.6.0
ruby:
version: 2.0.0
platform: i386-mingw32
description: ruby 2.0.0p247 (2013-06-27) [i386-mingw32]
engine: ruby
libxml:
binding: extension
source: system
compiled: 2.8.0
loaded: 2.8.0
你试过'.text.match('\ d +')'? – 2013-08-16 15:56:57
http://www.vitarara.org/cms/hpricot_to_nokogiri_day_1说@tenderlove建议'gsub(/ \ 302 \ 240 /,'')' - 详细阅读 –
为什么当HTML显示为'97'时会得到'496' ',并且Nokogiri代码显示'497'。在进行测试并报告结果时请保持一致。 –