Tag: nokogiri

警告:Nokogiri是针对LibXML 2.7.3版本构建的,但动态加载了2.7.8

在重新安装Mac OS X 10.8 Mountain Lion之后,安装了Ruby 1.9.3和Ruby on Rails 3.2.6之后,我启动了Rails控制台,并收到了以下警告消息: 警告:Nokogiri是针对LibXML 2.7.3版本构建的,但动态加载了2.7.8 我该如何解决?

在Windows 7上使用Ruby 2.3安装机械化时出错

我正在尝试在Windows 7上安装带有Ruby 2.3的Mechanize。但是我收到了以下错误。 有人能指出我正确的方向吗? PS C:\DevKit> ruby –version ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32] PS C:\DevKit> gem install mechanize Fetching: net-http-digest_auth-1.4.gem (100%) Successfully installed net-http-digest_auth-1.4 Fetching: net-http-persistent-2.9.4.gem (100%) Successfully installed net-http-persistent-2.9.4 Fetching: mime-types-2.99.1.gem (100%) Successfully installed mime-types-2.99.1 Fetching: unf_ext-0.0.7.2-x64-mingw32.gem (100%) Successfully installed unf_ext-0.0.7.2-x64-mingw32 Fetching: unf-0.1.4.gem (100%) Successfully installed unf-0.1.4 Fetching: domain_name-0.5.20160310.gem (100%) Successfully installed domain_name-0.5.20160310 […]

运行rails S时出现分段错误(无法编译nokogiri)

我已经在配置地狱两天了,我已经尝试了Stack Overflow上的所有内容来修复它。 我觉得我尝试过的一些东西可能会让事情变得更糟。 我正在使用RVM,然后我尝试使用rbenv,现在我又回到了使用RVM。 我不确定是否有rbenv的残余导致这个或什么,但我按照说明完全删除它。 我目前得到的错误是: https://gist.github.com/EvanTedesco/d4288cfb1f8dfc5a1e03 ruby -v: ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0] rails -v: Rails 3.2.19 xcode-select -p: /Library/Developer/CommandLineTools gem环境: RubyGems Environment: – RUBYGEMS VERSION: 2.4.3 – RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin14.0] – INSTALLATION DIRECTORY: /Users/acumendigital/.rvm/gems/ruby-2.1.5 – RUBY EXECUTABLE: /Users/acumendigital/.rvm/rubies/ruby-2.1.5/bin/ruby – EXECUTABLE DIRECTORY: /Users/acumendigital/.rvm/gems/ruby-2.1.5/bin – SPEC CACHE DIRECTORY: /Users/acumendigital/.gem/specs – […]

Ruby Watir Gem,定时输入表格

我正在使用Watir,Mechanize和Nokigirigem练习网页拼图。 我的Watir脚本遇到了问题。 我的计划是通过http://tripadvisor.com/获取航class价格清单。 当我运行脚本时,Chrome浏览器会按原样打开,脚本会继续填写表单的第一部分,原点和目标,然后停止。 这是我收到的错误消息: This code has slept for the duration of the default timeout waiting for an Element to be present. If the test is still passing, consider using Element#exists? instead of rescuing UnknownObjectException /home/jaffejoe/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/watir-6.2.0/lib/watir/elements/element.rb:515:in `rescue in wait_for_present’: element located, but timed out after 30 seconds, waiting for true condition on #”rt_leaveday”, :tag_name=>”input”}> […]

如何一次访问一个标记

我有以下HTML: Some words. Some more words. Even more words. 如果我使用以下方法解析HTML: doc = Nokogiri::HTML(open(“http://my_url”)) 并运行 doc.css(‘#test_id’).text 在控制台我得到: => “Some words.\nSome more words.\nEven more words” 我如何才能获得第一个 元素? 我想我和.children一起.children doc.css(‘#test_id’).children[0].text 这是正确的方法吗?

搜索savon响应为nokogiri文档返回一个空数组

我尝试将savon的回复解析为nokokiri文件 c = Savon.client(wsdl: ‘http://test.fedresurs.ru/MessageService/WebService.svc?wsdl’, digest_auth: [‘demowebuser’, ‘Ax!761BN’], namespace: “http://tempuri.org/”, namespace_identifier: :tem, log: true) r = c.call(:get_trade_messages, message: {‘tem:startFrom’ => DateTime.now-1}) r.doc.search(“TradePlace”) 它返回一个空数组。 我做错了什么? 可能我应该以某种方式处理命名空间? 但是,怎么样? 我在nokogiri文档中找到的示例使用Xpath,而不是搜索。 即使使用Xpath,它也会返回一个空数组。 XML响应:

Nokogiri(Ruby):提取每个节点内特定属性的标记内容

我有一个具有以下结构的XML Contents Contents Contents Contents 我想使用以下内容为每个Document节点提取特定标记的内容: xml.xpath(‘//Document/Tags’).each do |node| puts xml.xpath(‘//Root/Batch/Document/Tags/Tag[@id=”ID11″]’).text end 期望为每2个节点提取id =“ID11”的标签内容,但不检索任何内容。 有任何想法吗?

在Nokogiri中插入特定XML标记后的文本

我想创建以下XML: TEXT GOES HERE 使用Nokogiri构建的结构非常简单: builder = Nokogiri::XML::Builder.new do |xml| xml.foo { xml.bar {} } end puts builder.to_xml 我无法弄清楚的是如何在插入TEXT GOES HERE字符串,但是在 。 显然, xml.foo(“TEXT GOES HERE”)会在之前生成文本。 我错过了什么?

重构Ruby抓取代码

基本上,我会在每个页面上有多个.main_entry块,我需要从每个块中提取几个数据。 如何将其正确地重构为方法? require ‘open-uri’ require ‘nokogiri’ url = #url doc = Nokogiri::HTML(open(url)) doc.css(“.main_entry”).each do |item| artist = item.at_css(“.list_artist”).text title = item.at_css(“.list_album”).text puts “#{artist} – #{title}” end 我已经到达下面的这个混乱,它抛出undefined local variable or method ‘release’错误,似乎与被覆盖的方法有关。 您能否向我解释下面的代码通过什么过程,为什么它会崩溃以及我应该转向什么? 在实例化之前,是否应将每个.main_entry块首先保存到某种缓存或数组中? require ‘open-uri’ require ‘nokogiri’ class Scraper def initialize(url) @url = url end def release @release ||= doc.css(“.main_entry”) || [] end release.each […]

ruby(1.8.7):如何在刮擦时摆脱不可打印的字符?

我正在尝试使用Nokogiri解析HTML页面,但我遇到了一些文本问题。 主要是,我无法摆脱不必要的角色。 在解析时,当我获得String时,我总是尝试尽可能地清理它。 我尝试将非打印字符转换为唯一空格。 经过大量修改后,我使用这种方法没有成功: def clear_string(str) CGI::unescapeHTML(str).gsub(/\s+/mu,” “).strip end 例如,设置这个HTML片段(从http://www.gisa.cat/gisa/servlet/HomeLicitation?licitationID=1061525复制粘贴) Tramitació:  ordinària Netbeans 7.0使用Nokogiri和clear_string (上面定义的方法)显示了一些中间示例输出 row.at(“td[1]”).text # => “Tramitació:” row.at(“td[2]”).text # => ” ordinària ” clear_string(row.at(“td[2]”).text) # => ” ordinària” row.at(“td[2]”).text.scan(/./mu) # => [“\302\240”, “o”, “r”, “d”, “i”, “n”, “\303\240”, “r”, “i”, “a”, ” “] 我不知道为什么strip不会摆脱第一个空间。 此外,应用clear_string后的解析结果将使用YAML::dump转储到yaml文件中。 其内容分别为两种文本: “Tramitaci\xC3\xB3:” !binary | wqBvcmRpbsOgcmlh 第一个似乎不太好,但我不知道如何解决第二种情况。