Tag: nokogiri

Nokogiri一次解析多个XML提要并按日期排序

我使用Rails和Nokogiri来解析一些XML提要。 我已经解析了一个XML提要,我想解析多个提要并按日期对项目进行排序。 它们是Wordpress提要,因此它们具有相同的结构。 在我的控制器中,我有: def index doc = Nokogiri::XML(open(‘http://somewordpressfeed’)) @content = doc.xpath(‘//item’).map do |i| {‘title’ => i.xpath(‘title’).text, ‘url’ => i.xpath(‘link’).text, ‘date’ => i.xpath(‘pubDate’).text.to_datetime} end end 在我看来,我有: <a href="https://stackoverflow.com/questions/14459907/nokogiri-parsing-multiple-xml-feeds-at-once-and-sort-by-date/”> ( ) 上面的代码可以正常工作。 我试图解析多个feed并得到404错误: feeds = %w(wordpressfeed1, wordpressfeed2) docs = feeds.each { |d| Nokogiri::XML(open(d)) } 如何解析多个提要并将其添加到哈希,就像我使用一个XML提要一样? 我需要在页面加载时一次解析大约50个XML feed。

如何使用Nokogiri在两个HTML注释之间抓取HTML?

我有一些HTML页面,其中要提取的内容用下面的HTML注释标记。 ….. some text Some more elements … 我正在使用Nokogiri并尝试在和 comments之间提取HTML。 我想提取这两个HTML注释之间的完整元素: some text Some more elements 我可以使用这个字符回调获得纯文本版本: class TextExtractor < Nokogiri::XML::SAX::Document def initialize @interesting = false @text = "" @html = "" end def comment(string) case string.strip # strip leading and trailing whitespaces when /^begin content/ # match starting comment @interesting = true when /^end […]

Nokogiri错误:未定义的方法`radiobutton_with’ – 为什么?

我尝试使用mechanize(Ruby)访问表单。 在我的表格上,我有一个Radiobuttons的gorup。 所以我想检查其中一个。 我写: target_form = (page/:form).find{ |elem| elem[‘id’] == ‘formid’} target_form.radiobutton_with(:name => “radiobuttonname”)[2].check 在这一行中,我想检查值为2的单选按钮。但在这一行中,我收到一个错误: : undefined method `radiobutton_with’ for # (NoMethodError)

为什么不安装nokogiri?

我有一个时间在Ubuntu 12.04上安装Nokogiri的魔鬼。 我用rbenv。 $ gem install nokogiri -v ‘1.6.1’ ERROR: While executing gem … (Errno::EACCES) Permission denied – /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/.autotest $ sudo gem install nokogiri -v ‘1.6.1’ ERROR: Error installing nokogiri: nokogiri requires Ruby version >= 1.9.2. $ rbenv sudo gem install nokogiri -v ‘1.6.1’ Building native extensions. This could take a while… ERROR: Error installing […]

如何使用nokogiri和mechanize从标签中提取文本?

这是预订网站源代码的一部分: booking.ensureNamespaceExists(‘env’); booking.env.b_map_center_latitude = 53.36480155016638; booking.env.b_map_center_longitude = -2.2752803564071655; booking.env.b_hotel_id = ‘35523’; booking.env.b_query_params_no_ext = ‘?label=gen173nr-17CAEoggJCAlhYSDNiBW5vcmVmaFCIAQGYAS64AQTIAQTYAQHoAQH4AQs;sid=e1c9e4c7a000518d8a3725b9bb6e5306;dcid=1′; 我想提取booking.env.b_hotel_id 。 这样我就可以获得’25523’的价值。 我如何通过nokogiri和机械化实现这一目标? 希望有人可以帮忙! 谢谢! 🙂

如何在Ruby中改变……(elipses)到……(三个时期)?

我正在使用nokogiri解析这个文档 。 我发现该页面中有一些… (elipses)字符,无法删除。 我想知道如何使用Ruby将所有… (elipses)替换为… (三个句点)。 顺便说一句,你可以搜索这个字符串来查找所有…s 指定是否ALTER TABLE 编辑:我添加了我的程序和错误消息。 # encoding: UTF-8 require ‘nokogiri’ require ‘open-uri’ require ‘terminal-table’ def change s {Nokogiri::HTML(” “).text => ” “, Nokogiri::HTML(“"”).text => ‘”‘, Nokogiri::HTML(“™”).text => ‘(TM)’, Nokogiri::HTML(“&”).text => “&”, Nokogiri::HTML(“<“).text => ” “>”, Nokogiri::HTML(“©”).text => “(C)”, Nokogiri::HTML(“®”).text => “(R)”, Nokogiri::HTML(“¥”).text => ” “}.each do |k, v| s.gsub!(k, v) […]

如何使用Nokogiri将两个XML文件合并为一个?

我有两个XML文件,并希望合并它们,但不应更改已存在的标记: XML 1: 8 XML 2: 9999 John Smith 我希望结果是这样的: 8 John Smith 以前的标签应该具有相同的值,但添加了新的标签。 这可能使用Nokogiri吗? 怎么样? 起初我试过没有Nokogiri使用: xml1 = Hash.from_xml(‘ 8 ‘) 但是当我转换回xml(xml1.to_xml)时,我的格式错误: “\n\n \n sdu:x\n \n 8\n \n \n\n” 使用Nokogiri,我想出了这个解决方案,但实际上,它是如此丑陋而且有一个bug。 如果xml2没有元素,它将崩溃: require ‘nokogiri’ s = “8” xml1 = Nokogiri::XML.parse s s2 = “9John” xml2 = Nokogiri::XML.parse s2 def node_list elem, &proc return [] unless […]

nokogiri xpath属性 – 奇怪的结果

我有一堆字段,当我尝试运行时: src.xpath(‘//RECORD’).each do |record| tbegin = record.xpath(‘//FIELD/TOKEN’) tbegin数组返回其他记录中的字段。 我已经检查过第一行是否给了我适当的“记录”子树数组,但下一次调用tbegin并不tbegin搜索限制为仅仅“记录”子树。 实际上,它始终返回record[0]的字段子树。 到目前为止,我通过使用以下方式解决了这个问题: tbegin = record.css(‘TOKEN’) 但我想知道我做错了什么。

调整Nokogiri连接的超时

为什么nokogiri在服务器繁忙时等待几秒钟(3-5)并且我一个接一个地请求页面,但是当这些请求处于循环中时,nokogiri不会等待并抛出超时消息。 我正在使用超时块包装请求,但nokogiri根本不等待那个时间。 有关此的任何建议程序? # this is a method from the eng class def get_page(url,page_type) begin timeout(10) do # Get a Nokogiri::HTML::Document for the page we’re interested in… @@doc = Nokogiri::HTML(open(url)) end rescue Timeout::Error puts “Time out connection request” raise end end # this is a snippet from the main app calling eng class # receives […]

为什么我不能加载Nokogiri?

我通过运行安装Nokogiri没有任何问题: $ sudo gem install nokogiri Building native extensions. This could take a while… Successfully installed nokogiri-1.5.9 1 gem installed Installing ri documentation for nokogiri-1.5.9… Installing RDoc documentation for nokogiri-1.5.9… 当我运行nokogiri.rb时: #!/usr/bin/ruby -w require ‘nokogiri’ puts “Current directory is: #{ Dir.pwd }” Dir.chdir(“/home/askar/xml_files1”) do |dirname| puts “Now in: #{ Dir.pwd }” xml_files = Dir.glob(“ShipmentRequest*.xml”) if […]