Tag: nokogiri

使用Ruby和Nokogiri解析大型XML文件

我有一个大的XML文件(大约10K行)我需要定期解析这种格式: 10000 Category Name 1 Val 1 …… 10,000 more times 我想要做的是使用nokogiri解析每个节点,以计算一个类别中的项目数量。 然后,我想从total_count中减去该数字,得到一个读数为“Count of Interest_Category:n,Count of All Else:z”的输出。 这是我现在的代码: #!/usr/bin/ruby require ‘rubygems’ require ‘nokogiri’ require ‘open-uri’ icount = 0 xmlfeed = Nokogiri::XML(open(“/path/to/file/all.xml”)) all_items = xmlfeed.xpath(“//items”) all_items.each do |adv| if (adv.children.filter(“cat”).first.child.inner_text.include? “partofcatname”) icount = icount + 1 end end othercount = xmlfeed.xpath(“//totalcount”).inner_text.to_i – icount puts icount […]

如何使用Nokogiri :: XML :: Builder在元素名称中使用连字符创建XML?

我正在尝试使用Nokogiri构建XML文档。 一些元素中有连字符。 这是一个例子: require “nokogiri” builder = Nokogiri::XML::Builder.new do |xml| xml.foo_bar “hello” end puts builder.to_xml 哪个产生: hello 但是,当我尝试: builder = Nokogiri::XML::Builder.new do |xml| xml.foo-bar “hello” end 我明白了: syntax error, unexpected tSTRING_BEG, expecting kDO or ‘{‘ or ‘(‘ xml.foo-bar “hello” 现在我意识到这是因为连字符被解释为foo MINUS bar 。 我该怎么做?

是否可以使用Ruby和Nokogiri插入JavaScript引擎?

我正在编写一个应用程序来抓取一些网站并从中抓取数据。 我正在使用Ruby,Curl和Nokogiri来做这件事。 在大多数情况下,它很简单,我只需要ping一个URL并解析HTML数据。 设置完美无缺。 但是,在某些情况下,网站会根据某些单选按钮上的用户输入检索数据。 这会调用一些JavaScript从服务器获取更多数据。 生成的URL和发布的数据由JavaScript代码确定。 是否可以使用: 一个JavaScript库以及这个设置,它能够确定在我的HTML页面中执行JavaScript吗? 除了使用不同的库之外,还有一些集成或HTML和JS库进行通信的方式吗? 例如,如果单击一个按钮,Nokogiri需要调用JavaScript,然后JavaScript需要更新Nokogiri。 如果我的方法看起来不是最好的,那么你的建议是使用Ruby在Web上构建一个crawler + scraper。 编辑:使用therubyrace看起来像第1点是可能的,因为它在你的代码中嵌入了V8引擎,但有2个替代吗?

Nokogiri以递归方式获得所有孩子

问题 我正在针对各种URL运行一些统计信息。 我想找到最集中的孩子数量的顶级元素。 我想要遵循的方法是识别所有顶级元素,然后确定页面上所有元素的百分比属于它。 目标 递归获取给定元素的所有子元素。 输入:Nokogiri元素 输出:一系列Nokogiri元素或儿童总数 建立 Ruby 1.9.2 Nokogirigem 我最终想出了什么(这有效,但不如下面我选择的答案那么漂亮) getChildCount(elem) children = elem.children return 0 unless children and children.count > 0 child_count = children.count children.each do |child| child_count += getChildCount(child) end child_count end

使用nokogiri builder(ruby)设置标记属性并将纯文本内容添加到标记

我正在尝试使用Nokogiri构建XML,其中一些标签在标签内部具有属性和纯文本。 所以我想尝试这个: hello 使用构建器我有这个: builder = Nokogiri::XML::Builder.new { |xml| xml.Transaction(“requestName” => “OrderRequest”) do xml.Option(“b” => “hive”).text(“hello”) end } 它呈现给: hello 所以它产生hello ,我希望它是hello 我不知道该怎么做。 如果我尝试通过只提供我想要的XML来获取Nokogiri对象,它会将内部文本放在标记中设置为children=[#]我不知道如何从构建器中设置它。 如果有人在Nokogiri文档中提到了这一点,我将不胜感激。

将XML集合(Pivotal Tracker故事)转换为Ruby散列/对象

我有一个XML格式的故事集。 我想解析文件并将每个故事作为散列或Ruby对象返回,以便我可以进一步操作Ruby脚本中的数据。 Nokogiri是否支持此function,或者是否有更好的工具/库可供使用? XML文档具有以下结构,通过Pivotal Tracker的Web API返回: 16376 feature http://www.pivotaltracker.com/story/show/16376 2 accepted A description Receivable index listing will allow selection viewing Tony Superman Tony Superman 2009/11/04 15:49:43 WST 2009/11/10 11:06:16 WST index ui,receivables 17427 feature http://www.pivotaltracker.com/story/show/17427 3 unscheduled Validations in wizards based on direction Matthew McBoggle 2009/11/17 15:52:06 WST 17426 feature http://www.pivotaltracker.com/story/show/17426 2 unscheduled Manual payment […]

如何使用Mechanize / Nokogiri获取页面源

我使用Mechanize登录了一个网页/ servlet。 我有一个页面对象 jobShortListPg = agent.get(addressOfPage) 当我使用以下 puts jobShortListPg 我得到了我不想要的页面的“机械化”版本 # 如何获取页面的html源代码呢?

如何使用Nokogiri解析XML文件?

我和Nokogiri有些问题。 我试图解析这个XML文件: A Funfair in Bangkok Funfair in Bangkok True A small funfair near On Nut in Bangkok. 2009-08-03T00:00:00 False Funfair in Bangkok A small funfair near On Nut in Bangkok. Anthony Bouch Copyright © Anthony Bouch 2009-08-07T19:22:08 Funfair Bangkok Thailand Bumper Cars at a Funfair in Bangkok Bumper cars at a small funfair near […]

gem install nokogiri -v’1.6.8.1’失败了

构建一个新的Rails应用程序并解决nokogiri的问题。 据说尝试gem install nokogiri -v ‘1.6.8.1’失败,输出如下。 我尝试删除Gemfile.lock并使用另一个没有问题的应用程序的Gemfile – bundle install仍然失败。 最初的失败是bundle install ,它继续在其他应用程序中工作。 从控制台: gem install nokogiri -v ‘1.6.8.1’ Building native extensions. This could take a while… ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. current directory: ~/.gem/ruby/2.3.1/gems/nokogiri-1.6.8.1/ext/nokogiri ~/.rubies/ruby-2.3.1/bin/ruby -r ./siteconf20161008-60071-tmqi2l.rb extconf.rb Ignoring byebug-6.0.2 because its extensions are not built. Try: gem […]

将HTML转换为纯文本(包含)

是否可以将带有Nokogiri的HTML转换为纯文本? 我还想要包含标签。 例如,给定此HTML: ala ma kota i kot to idiota 我想要这个输出: ala ma kota i kot to idiota 当我只调用Nokogiri::HTML(my_html).text它会排除标签: ala ma kota i kot to idiota