FF Xpather到Nokogiri – 我可以复制和粘贴吗?

我手动这样做,然后我卡住了,我无法弄清楚为什么它不起作用。 我下载了xpather,它给了我:/ html / body / center / table / tbody / tr [3] / td / table作为我想要的项目的路径。 我已经手动确认这是正确的,但是当我将其粘贴到我的代码中时,它所做的只是返回nil

这是我的代码:

a = parentdoc.at_xpath("//html/body/center/table/tbody/tr[3]/td/table[1]") puts a 

如果我做这样的事情:

 a = parentdoc.at_xpath("//html/body/center") puts a 

我从页面上获得了大量文本。 我可以继续添加元素,直到我点击tbody然后再次返回nil。 我甚至尝试过类似的东西:// html / body / center / table / * / tr [3]并返回nil做同样的事情

我错过了什么?

您的问题是Firefox正在插入HTML中不存在的

元素。 当您使用xpather时,它正在使用浏览器正在使用的HTML(而不是ycombinator.com返回的原始HTML)并找到此路径:

 //html/body/center/table/tbody/tr[3]/td/table 

Nokogiri将使用原始HTML,所以你想要这个

 //html/body/center/table/tr[3]/td/table 

当我将XPath应用于您的评论中的URL时:

 doc.at_xpath('//html/body/center/table/tr[3]/td/table').text 

我得到这个输出:

 "csoghoian 1 hour ago | link | parent2 responses:1. Chrome is the only major browser not to ...