【问题标题】:Nokogiri returning nothing when doing an XPath searchNokogiri 在进行 XPath 搜索时不返回任何内容
【发布时间】:2013-04-07 00:06:32
【问题描述】:

我需要解析网页中的表格。我在使用 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,我会得到网页的正文。

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

知道会发生什么吗?

【问题讨论】:

标签: ruby web-scraping nokogiri


【解决方案1】:

解决问题的方法是按照“Why does this Nokogiri XPath have a null return?”中的建议删除 xPath 中的 tbody 部分。

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")

【讨论】:

    【解决方案2】:

    进入那张桌子的正确方法是:

    doc.at('table.contenido')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2021-09-24
      相关资源
      最近更新 更多