如何解析表中的文档并将其作为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
}
一个简单的解析示例,以及我是如何形成散列的