Tag: nokogiri

解析:我可以在Nokogiri中获取嵌入式CSS背景的URL吗?

我正在解析的HTML包含在表格中使用内联CSS的图像,我可以使用Nokogiri来确定URL组件,这里是我要解析的代码片段: tldr:我想在这个html片段中使用nokogiri获取.png Kristins Gifts Stationery to Explore

Nokogiri构建器在巨大的XML上表现?

我需要构建一个大约1-50 MB的巨大XML文件。 我认为使用构建器会足够有效,而且有点。 问题是,在程序到达最后一行后它不会立即结束,但Ruby仍在做几秒钟的事情,可能是垃圾收集? 之后程序终于结束了。 举一个真实的例子,我测量了构建XML文件的时间。 在构建XML时,它输出55秒(后面有一个数据库,所以需要很长时间),但是Ruby仍然会处理大约15秒钟,处理器就会变得疯狂。 伪/实际代码如下: … builder = Nokogiri::XML::Builder.with(doc) do |xml| build_node(xml) end … def build_node(xml) … xml[“#{namespace}”] if namespace xml.send(“#{elem_name}”, attrs_hash) do |elem_xml| … if has_children if type case type when XML::TextContent::PLAIN elem_xml.text text_content when XML::TextContent::COMMENT elem_xml.comment text_content when XML::TextContent::CDATA elem_xml.cdata text_content end else build_node(elem_xml) end end end end 请注意,我使用自己的类结构使用不同的方法,并且构建的速度是相同的,但在最后一行程序通常结束,但现在我被迫使用Nokogiri所以我必须找到一个解决方案。 在构建XML之后,我可以做些什么来避免X秒长的开销? […]

无法安装gem安装nokogiri

当试图使用gem install nokogiri 我收到以下错误: ERROR: Error installing nokogiri: nokogiri requires Ruby version = 1.9.2. 但是,如果我做ruby -v : ruby 2.3.0p0 (2015-12-25 revision 53290) [i386-mingw32] 我试图在本地安装它, gem install –local nokogiri并且它在安装过程中运行,但是当我尝试使用gem时,它将找不到该文件: C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require’ : cannot load such file — nokogiri (LoadError) 有没有人为此工作? 或者我在没有nokogiri情况下nokogiri ?

Nokogiri与Rspec

有没有办法在Rspec中使用Nokogiri? 特别是我试图从控制器动作获取响应并将其转换为Nokogiri对象page并运行Nokogiri特定的解析,如下所示: page.search(‘input[name=”some_name”]’).size.should == 1 我在哪里包括Nokogiri – 那将是spec_helper.rb吗? 如何将ActionController::TestResponse转换为Nokogiri对象? 或者是否可以通过使用普通的Rspec语法来运行上述类型的断言?

Nokogiri支持哪个版本的xpath?

我找不到Nokogiri支持的xpath版本的官方声明。 有人可以帮我吗? 实际上我想提取一些具有以指定子字符串开头的属性的元素。 例如,我想让所有具有category属性的Book元素以字符C开头。 如何用nokogiri做到这一点? Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99 Learning XML Erik T. Ray 2003 39.95

Nokogiri可以保留属性引用风格吗?

这是我的文件的内容(注意嵌套引号): 在Ruby我有: file = File.read(settings.test_file) @xml = Nokogiri::XML( file) puts “@xml ” + @xml.to_s 这是输出: 有没有办法转换它,所以输出将完全保留报价? 即在外面单身,在里面加倍?

有没有办法逃脱Nokogiri css中的非字母数字字符?

我有一个锚标记: file.html#stuff-morestuff-CHP-1-SECT-2.1 试图在Nokogiri中提取引用的内容: documentFragment.at_css(‘#stuff-morestuff-CHP-1-SECT-2.1’) 失败并出现错误: unexpected ‘.1’ after ‘[#<Nokogiri::CSS: :Node:0x007fd1a7df9b40 @type=:CONDITIONAL_SELECTOR, @value=[#, #]>]’ (Nokogiri::CSS::SyntaxError) 只是试着通过这个 – 我认为Nokogiri抱怨选择器中的.1 ,因为. 在HTML身份证中无效。 我不拥有这些内容,所以如果可以避免的话,我真的不想修复所有错误的ID。 有没有办法在nokogiri .css()调用中转义非字母数字选择器?

Nokogiri使用格式和链接标签抓取文本,

如何使用Nokogiri以格式标签递归捕获所有文本? This is text in the TD with strong tags This is a child node. with bold tags “another line of text to a link ” This is text inside a div inside another div inside a paragraph tag 例如,我想捕获: “This is text in the TD with strong tags” “This is a child node. with […]

nokogiri +通过文本机械化css选择器

我是nokogiri的新手,到目前为止最熟悉CSS选择器,我试图从表中解析信息,下面是表的示例和我正在使用的代码,我坚持使用相应的if语句,如它似乎返回表的全部内容。 表: … SPECIFIC TEXT What I want 我的脚本:(如果在表中找到SPECIFIC TEXT,它返回每个“div.c2 span.data”变量 – 所以我要么搞砸了我对do循环或if语句的了解) data = [] page.agent.get(url) page.search(‘div.row’).each do |row_data| if (row_data.search(‘div.c1:contains(“/SPECIFIC TEXT/”)’).text.strip temp = row_data.search(‘div.c2 span.data’).text.strip data << temp end end

使用Nokogiri解析大型HTML文件

我正在尝试用Nokogiri解析http://www.pro-medic.ru/index.php?ht=246&perpage=all ,但不幸的是我无法从页面中获取所有项目。 我的简单测试代码是: require ‘open-uri’ require ‘nokogiri’ html = Nokogiri::HTML open(‘http://www.pro-medic.ru/index.php?ht=246&perpage=all’) p html.css(‘ul.products-grid-compact li .goods_container’).count 它只返回83项,但实际数量约为186。 我认为问题可能是open ,但似乎函数正确读取HTML页面。 有人遇到过同样的问题吗?