Nokogiri在进行XPath搜索时不返回任何内容



我需要从网页解析一个表。在使用Ruby和Nokogiri之前,我已经这样做了,但这次我的方法不起作用。这就是我正在做的:

response = RestClient.get "http://www.webpage.com?page=0"
doc = Nokogiri::HTML(response.body,nil,'utf-8')
doc.remove_namespaces!
table = doc.xpath(".//*[@id='contsinderecha']/form/table/tbody/tr[4]/td/table/tbody/tr[5]/td/table")

table只是一个空数组。响应很好,如果我做一个put response.body,我得到网页的主体。

另外,为了获得XPath,我使用firebug。

你知道会发生什么吗?

解决您的问题的方法是在您的xPath中去掉tbody部分,正如"为什么这个Nokogiri xPath有一个空返回?"中所建议的。

Firefox为您生成了tbody元素,这就是为什么它们出现在Firefox的xPath中,但它们不是原始页面源代码的一部分。

尝试以下操作:

response = RestClient.get "http://www.buenosaires.gob.ar/areas/seguridad_justicia/seguridad_urbana/estaciones_servicio/buscador.php?&pag=0"
doc = Nokogiri::HTML(response.body,nil,'utf-8')
doc.remove_namespaces!
table = doc.xpath(".//*[@id='contsinderecha']/form/table/tr[4]/td/table/tr[5]/td/table")

查看该表的正确方法是:

doc.at('table.contenido')

相关内容

  • 没有找到相关文章

最新更新