我想打印XPath节点的内容。这就是我所拥有的:
require "mechanize"
agent = Mechanize.new
agent.get("http://store.steampowered.com/promotion/snowglobefaq")
puts agent.xpath("//*[@id='item_52b3985a70d58']/div[4]")
返回:<main>: undefined method xpath for #<Mechanize:0x2fa18c0> (NoMethodError)
。
我刚刚开始使用Mechanize并且不知道我在做什么,但是,我已经使用了Watir,并认为这样可行,但事实并非如此。
答案 0 :(得分:0)
您在检索页面后使用Nokogiri来解析页面。以下是示例代码:
m = Mechanize.new
result = m.get("http://google.com")
html = Nokogiri::HTML(result.body)
divs = html.xpath('//div').map { |div| div.content } # here you can do whatever is needed with the divs
# I've mapped their content into an array
答案 1 :(得分:0)
有两件事是错的:
该页面上不存在该ID。试试这个以查看标签ID列表:
require "open-uri"
require 'nokogiri'
doc = Nokogiri::HTML(open("http://store.steampowered.com/promotion/snowglobefaq"))
puts doc.search('[id*="item"]').map{ |n| n['id'] }.sort
agent.page.xpath
。由于没有示例HTML确切显示您想要的标记,因此我们无法为您提供帮助。