Разбор документа в таблице - PullRequest
0 голосов
/ 12 июля 2011

Как мне проанализировать документ в таблице и отправить его в виде файла JSON на другую базу данных.

Подробное описание: Я сканировал и переносил данные в таблицу с веб-сайтов с использованием анемона.Теперь мне нужно разобрать его и передать в виде файла JSON на другой сервер.Я думаю, мне придется сначала преобразовать документ в таблице в документ nokogiri, который можно проанализировать и преобразовать в файл json.Любая идея, как я могу преобразовать документ в документ nokogiri или если у кого-то есть другая идея, чтобы разобрать его и отправить в виде файла json?

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Хорошо, я нашел ответ давно, я в основном использовал 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
    }

Простой пример разбора и как я сформировал мой хэш.

1 голос
/ 12 июля 2011

Nokogiri - ваш лучший выбор для разбора HTML, но что касается преобразования его в JSON, то вы сами по себе, насколько я могу судить.

После того, как вы проанализируете его с помощью Nokogiri, вам будет не очень сложно извлечь нужные элементы и сгенерировать JSON, который их представляет. То, что вы делаете, не очень распространенная задача, поэтому вам придется преодолеть разрыв между Nokogiri и любым другим камнем, который вы используете для генерации JSON.

...