Tag: nokogiri

如何在Ruby中集成这两个条件块代码?

如果我的代码在没有它们的情况下擦除,我如何整合这两个条件? 我的代码已经工作了,但是它会擦除所有行(非粗体和粗体值)并且不会刮掉title属性字符串。 条件1: 仅当其中一个字段为粗体时才解析表格行 : doc = Nokogiri::HTML(html) doc.xpath(‘//table[@class=”articulos”]/tr[td[5]/p/b]’).each do |row| puts row.at_xpath(‘td[3]/text()’) end Condition2: 只获取title属性字符串中的数字 : doc = Nokogiri::HTML(html) numbers = doc.xpath(‘//p[@title]’).collect { |p| p[:title].gsub(/[^\d]/, ”) } 我的代码: doc = Nokogiri::HTML(search_result.body) rows = doc.css(“table.articulos tr”) i = 0 details = rows.each do |row| detail = {} [ [:sku, ‘td[3]/text()’], [:desc, ‘td[4]/text()’], [:qty, ‘td[5]/text()’], [:qty2, […]

使用SAX Parser获取多个子节点?

我有一个大型本地XML文件(24 GB),其结构如下: **** **** (several times within an id…) 我需要这样的结果: id1;url1 id1;url2 id1;url3 id2;url4 …. 我想将Nokigiri与SAX Parser或Reader一起使用,因为我无法将整个文件加载到内存中。 我正在使用Ruby Rake任务来执行代码。 我的SAX代码是: task :fetch_saxxml => :environment do require ‘nokogiri’ require ‘open-uri’ class MyDocument < Nokogiri::XML::SAX::Document attr_accessor :is_name def initialize @is_name = false end def start_element name, attributes = [] @is_name = name.eql?("id") end def characters string string.strip! […]

数据抓取多个页面点击循环

试图找出一种方法,使用一个机制来刮取并向arrays添加我们想要的所有UCAS网站数据。 目前,我们正在努力使用机械化链接点击进行编码。 想知道是否有人可以提供帮助,在循环中有三个连续的链接点击进入所有搜索结果页面。 显示所有大学课程的第一个链接是div class morecourseslink 显示课程名称,持续时间和资格的第二个链接是div类coursenamearea 第三个链接在div coursedetailsshowable中,一个id是coursedetailtab_entryreqs 目前我们正在用下面的方式抓取uninames: class PagesController “]’) page = mechanize.get(next_page_link[‘href’]) page.search(‘li.result h3’).each do |h3| name = h3.text @uninames_array.push(name) end end puts @uninames_array.to_s end end 课程名称的持续时间和资格来自以下内容: require ‘mechanize’ mechanize = Mechanize.new @duration_array = [] @qual_array = [] @courses_array = [] page = mechanize.get(‘http://search.ucas.com/search/results?Vac=2&AvailableIn=2016&IsFeatherProcessed=True&page=1&providerids=41’) page.search(‘div.courseinfoduration’).each do |x| puts x.text.strip page.search(‘div.courseinfooutcome’).each do […]

有没有办法选择节点的所有内容?

有没有办法选择Nokogiri中节点的所有内容? this is the content of my æøå element 获取/root/element的内容的结果应该是: this is the content of my æøå element 编辑: 似乎解决方案只是使用myElement.inner_html() 。 我遇到的问题实际上是我依赖于旧版本的libxml2,它逃脱了所有特殊字符。

如何使用Nokogiri解析XML并拆分节点值?

我正在使用Nokogiri来解析XML。 doc = Nokogiri::XML(“http://www.enhancetv.com.au/tvguide/rss/melbournerss.php”) 我不确定如何正确地检索节点值。 我正在追踪item父节点下的title , link和description节点。 Toasted TV – TEN – 07:00:00 – 21/12/2011 http://www.enhancetv.com.au/tvguide/ Join the team for the latest in gaming, sport, gadgets, pop culture, movies, music and other seriously fun stuff! Featuring a variety of your favourite cartoons. 我想做的是title.split(“-“) ,这样我就可以将日期和时间字符串转换为有效的DateTime对象,以便稍后在轨道上使用。

是否可以使用Nokogiri :: XML :: Builder 从XML文档中省略处理指令

可能重复: 打印一个XML文档,顶部没有XML标题行 我正在尝试使用Nokogiri :: XML :: Builder创建XML片段,但我找不到任何关于如何排除处理指令的文档( <?xml version=… ) 谁能指出我正确的方向?

从ruby中的HTML元素中提取背景图像

我试图使用Nokogiri从div中提取background-url,但我无法解析它的background-url。 在StackOverflow上搜索时,我发现了这个链接 解析:我可以在Nokogiri中获取嵌入式CSS背景的URL吗? 但那里给出的解决方案不起作用。

Nokogiri在Heroku上解析时添加了字符

似乎Nokogiri有一个UTF-8转换角色的问题。 我收集到这是一个与LibXML2相关的问题。 Nokogiri建议将LibXML2升级到2.7.7而不是在Heroku上运行的2.7.6。 任何人都知道如何在Heroku上使用LibXML2 2.7.7(或更高版本)? 问题如下 – doc = Nokogiri::HTML(“Hi Hello”) doc.inner_html => “Hi Hello” doc.inner_html = “Hello World” => “Hello World” doc.inner_html => “Hello World” 看起来这是相关的: https : //github.com/sparklemotion/nokogiri/issues/306 这不会发生在我的本地计算机上。 Rails将’utf-8’设置为config.encoding并且呈现的页面具有utf-8字符集元标记。 在我的本地机器上我用limxml2 2.8.0运行Nokogiri 1.6,在Heroku上我用libxml2 2.7.6运行Nokogiri 1.6。 谢谢。

如何运行所有rake任务?

刚刚安装gemhttps://github.com/javan/whenever运行我的rake任务,这是nokogiri / feedzilla依赖的抓取任务。 例如我的任务叫做grab_bbc,grab_guardian等 我的问题 – 当我更新我的网站时,我会不断向scheduler.rake添加更多任务。 我应该在config / schedule.rb中编写什么来使所有rake任务运行,无论它们被称为什么? 这样的东西会起作用吗? every 12.hours do rake:task.each do |task| runner task end end 使用RoR 4是Cron的新手。

使用Nokogiri将标签替换为?

如何使用nokogiri将所有img标签替换为图像标签? 这是为了利用Rails自动插入正确资产服务器的能力? require ‘nokogiri’ class ToImageTag def self.convert Dir.glob(“app/views/**/*”).each do |filename| doc = Nokogiri::HTML(File.open(filename)) doc.xpath(“//img”).each |img_tags| # grab the src and all the attributes and move them to ERB end # rewrite the file end rescue => err puts “Exception: #{err}” end end