ruby on rails—在表中解析文档



如何解析表中的文档并将其作为JSON文件发送到另一个数据库。

详细描述:我已经爬了,并采取数据到一个表格从网站使用海葵。我现在需要解析它并将其作为JSON文件传输到另一个服务器。我想,我必须首先将表中的文档转换为nokogiri文档,可以解析并转换为json文件。有没有人知道如何将文档转换为nokogiri文档,或者如果有人有任何其他的想法来解析它并将其作为json文件发送?

Nokogiri是HTML解析的最佳选择,但至于将其转换为JSON,我可以告诉你的是你自己。

一旦你通过Nokogiri解析了它,提取你需要的元素并生成代表它们的JSON应该不是很困难。你正在做的不是一个非常常见的任务,所以你必须弥合Nokogiri和你用来生成JSON的任何gem之间的差距。

好吧,我很久以前就找到了答案,我基本上使用REST将消息从一个应用程序发送到另一个应用程序,我将其作为哈希发送。最明显的是,我使用nokogiri来解析表。

def post_me
     @page_hash = page_to_hash
    res = Net::HTTP.post_form(URI.parse('http://127.0.0.1:3007/element_data/save.json'),@page_hash)
  end

使用。net/http从一个应用程序发送哈希到另一个应用程序。

def page_to_hash
    require 'rubygems'
    require 'nokogiri'
    require 'open-uri'
    require 'domainatrix'
    #page = self.page.sub(/^<!DOCTYPE html(.*)$/, '<!DOCTYPE html>')
    hash={}
    doc = Nokogiri::HTML(self.page)
    doc.search('*').each do |n|
      puts n.name
    end

使用Nokogiri解析模型中的页表。页表包含整个网页。

file_type = []
    file_type_data=doc.xpath('//a/@href[contains(. , ".pdf") or contains(. , ".doc")
                          or contains(. , ".xls") or contains(. , ".cvs") or contains(. , ".txt")]')
    file_type_data.each do |href|
      if href[1] == "/"
        href = "http://" + website_url + href
      end
      file_type << href
    end
file_type_str = file_type.join(",")
    hash ={:head => head,:title => title, :body => self.body,
      :image => images_str, :file_type => file_type_str, :paragraph => para_str, :description => descr_str,:keyword => key_str,
      :page_url=> self.url, :website_id=>self.parent_request_id, :website_url => website_url,
      :depth => self.depth, :int_links => @int_links_arr, :ext_links => @ext_links_arr
    }

一个简单的解析示例,以及我是如何形成散列的

相关内容

  • 没有找到相关文章

最新更新