【发布时间】:2013-05-08 02:33:23
【问题描述】:
我正在尝试使用 Mechanize 从页面中删除一些标签。我以前曾成功地使用 Nokogiri 来抓取它们,但现在我正试图将它们组合成一个更广泛的 Mechanize 类。这是 Nokogiri 声明:
page = Nokogiri::HTML(open(@model.url, "User-Agent" => request.env['HTTP_USER_AGENT']))
@model.icons = page.css("link[rel='apple-touch-icon']").to_s
这是我认为的 Mechanize 等价物,但它不起作用:
agent = Mechanize.new
page = agent.get(@model.url, "User-Agent" => request.env['HTTP_USER_AGENT'])
@model.icons = page.search("link[rel='apple-touch-icon']").to_s
第一个按预期返回链接标签<link rel="apple-touch-icon" etc etc..></link>。第二条语句返回一个空白字符串。如果我把to_s 去掉,我会得到一个超长的输出。我认为这是一个错误或实际的 Mechanize 对象或其他东西。
不转换为字符串时链接到长输出:https://gist.github.com/eadam/5583541
【问题讨论】:
-
定义“不工作”。
search方法的返回值是什么?你期望得到什么?如果您将我们指向该页面或包含适当的 sn-p,这也会有所帮助。 -
我已经用完整的陈述和不工作的定义更新了这个问题。谢谢。
-
你能发布你得到的“超长输出”吗?
-
请不要将链接指向您的“长输出”。 WHEN 该链接破坏了您的问题,对于将来寻找相同答案的其他人来说将毫无用处。相反,如果链接真的那么长,请总结您要链接的内容,并提供指向完整信息的链接。如果不是那么长,请将其附加到您的问题中。
标签: ruby-on-rails ruby nokogiri mechanize mechanize-ruby