草庐IT

nokogiri_object

全部标签

ruby - 我如何在 Nokogiri 中使用 XPath?

我还没有找到任何文档或教程。有没有这样的东西?doc.xpath('//table/tbody[@id="threadbits_forum_251"]/tr')上面的代码将在任何地方为我提供任何表,它有一个tbody子级,其属性id等于“threadbits_forum_251”。但是为什么要以双//开头呢?为什么最后会有/tr?有关详细信息,请参阅“RubyNokogiriParsingHTMLtableII”。谁能告诉我如何提取href、id、alt、src等,使用野切?td[3]/div[1]/a/text()'如何提取其他东西? 最佳答案

ruby-on-rails - 对象.有效?返回 false 但 object.errors.full_messages 为空

我对无法保存的对象感到困惑,简化模型是classSubscription"User",:foreign_key=>"user_id"has_many:transactions,:class_name=>"SubscriptionTransaction"validates_presence_of:first_name,:message=>"nepeutêtrevide"validates_presence_of:last_name,:message=>"nepeutêtrevide"validates_presence_of:card_number,:message=>"nepeutêt

ruby - 使用 Nokogiri 提取链接时如何获取绝对 URL?

我正在使用Nokogiri从页面中提取链接,但我想获得绝对路径,即使页面上的链接是相对路径。我怎样才能做到这一点? 最佳答案 Nokogiri是无关的,除了它为您提供链接anchor这一事实。使用Ruby的URI管理路径的库:absolute_uri=URI.join(page_url,href).to_s实际可见:require'uri'#TheURLofthepagewiththelinkspage_url='http://foo.com/zee/zaw/zoom.html'#Avarietyoflinkstotest.href

ruby - 如何在 Nokogiri 中使用正则表达式搜索匹配特定开头的文本?

给定:require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(AFooBCBarDEF"HTML_END我想做一些我可以在Hpricot中做的事情:divs=value.search('//div[@id^="para-"]')如何对XPath样式的元素进行模式搜索?我在哪里可以找到对我有帮助的文档?我没有在rdoc中看到这个。 最佳答案 使用xpath函数starts-with:value.xpath('//p[starts-with(@id,"para-")]')

ruby - RSpec NoMethodError : "undefined method ` describe' for main Object"

我正在尝试学习Rspec。我在eclipse中的ruby项目如下-代码-require'rspec'require'./RubyOffRailsTuts/classes/furlong'describeFurlongdoend错误-/RubyOffRailsTuts/specs/furlong_spec.rb:6:in`':undefinedmethod`describe'formain:Object(NoMethodError)没有在网上得到任何有用的答案。我该如何解决这个问题? 最佳答案 作为RSpec.describe的前缀d

ruby - Nokogiri、open-uri 和 Unicode 字符

我正在使用Nokogiri和open-uri来抓取网页上标题标签的内容,但在处理重音字符时遇到了问题。处理这些问题的最佳方法是什么?这是我正在做的:require'open-uri'require'nokogiri'doc=Nokogiri::HTML(open(link))title=doc.at_css("title")此时,标题看起来是这样的:Rag\303\271代替:Ragù我怎样才能让nokogiri返回正确的字符(例如本例中的ù)?这是一个示例网址:http://www.epicurious.com/recipes/food/views/Tagliatelle-with-

ruby - Objective-C 是否像 Ruby 一样支持 Mixin?

在Ruby中,有模块,您可以通过“混入”模块来扩展类。moduleMyModuledefprintoneprint"one"endendclassMyClassincludeMyModuleendtheOne=MyClass.newtheOne.printone>>one在Objective-C中,我发现我有一组常用的方法,我想要一些Class来“继承”。在不创建通用类并从该通用类派生所有内容的情况下,还有哪些其他方法可以实现这一目标? 最佳答案 不要脸的外挂:ObjectiveMixin它利用了Objective-C运行时在运行时

带索引的 Ruby `each_with_object`

我想用index做a.each_with_object,比这更好:a=%w[abc]a.each.with_index.each_with_object({}){|arr,hash|v,i=arrputs"iis:#{i},vis#{v}"}iis:0,visaiis:1,visbiis:2,visc=>{}没有v,i=arr有没有办法做到这一点? 最佳答案 在你的例子中.each.with_index是多余的。我找到了这个解决方案:['a','b','c'].each_with_object({}).with_indexdo|(e

ruby-on-rails - Mountain Lion - LibXML 和 Nokogiri

我刚刚更新到OSXMountainLion,在使用rails和终端时我得到了以下信息。WARNING:NokogiriwasbuiltagainstLibXMLversion2.8.0,buthasdynamicallyloaded2.7.8我看过类似问题的其他答案,但它们似乎并没有阻止警告消息的出现。 最佳答案 我在ruby​​1.9.2上安装nokogirigem时遇到了类似的问题显然Apple升级了gcc...我用符号链接(symboliclink)修复了这个问题,然后gem安装得很好:sudoln-s/usr/bin/gcc

Ruby:Object.to_a 替换

我需要将传入的参数(单个对象或集合)转换为数组。我不知道论点是什么。如果它已经是一个数组,我想保留它,否则从中创建一个单元素数组。我希望同时允许method(:objs=>obj)和method(:objs=>[obj1,obj2])/p>这似乎是最好的方式(Array#to_a返回self):arg=arg.to_a但ruby​​文档说Object#to_a很快就会过时。有方便的更换吗?还有比这更简洁的吗?arg=arg.respond_to?(:to_a)?arg.to_a:[arg] 最佳答案 使用方法Kernel#Array