ด้านล่างเป็นรายการ “ของ” ที่ควรจะติดตั้งมาก่อน ถ้ามีปัญหาติดตั้งตรงไหนไม่ได้ก็ไม่เป็นไร ไว้มาทำตอนเจอก็ได้ แต่ถ้าติดตั้งมาก่อนจะทำให้เร็วมากขึ้น

ส่วนการสกัดข้อมูล

เครื่องคุณจะต้องติดตั้ง

  • Ruby — ภาษา Ruby ให้ติดตั้งชุดโปรแกรมอื่น ๆ ที่เกี่ยวข้องด้วย เช่น irb (เป็น command-line interpreter ของ ruby)
    • ใน Windows ให้ติดตั้งด้วย One-click Installer ให้ติดตั้งตัว ruby gems ที่มากับ installer เลยด้วย
  • Ruby Gems — เป็นชุดสำหรับติดตั้ง library ต่าง ๆ ของ Ruby
    • ถ้าคุณใช้ Ubuntu ให้ติดตั้งโดยตรง อย่าใช้ apt-get เพราะว่ามันจะมีปัญหาต่อไป เมื่อติดตั้งเสร็จแล้วจะได้โปรแกรม gems ชื่อ gem1.8
  • Hpricot — สำหรับแกะเอกสาร xml/html ให้ติดตั้งผ่านทาง gem

ส่วนการ upload ข้อมูล

มีหลายทางเลือก ขึ้นกับว่าจะลุยไปใน database ด้วยอะไร

Ruby on Rails

ถ้าเราจะลุยไปใน database ของ drupal ด้วย Active Record ซึ่งเป็นส่วนหนึ่งของ Ruby on Rails เพราะฉะนั้น กรุณาติดตั้งโปรแกรมเหล่านี้มาด้วย

  • Ruby on Rails ติดตั้งผ่านทาง gems โดยสั่ง
    • sudo gem install rails
  • ให้ติดตั้ง driver สำหรับ MySQL บน Ruby มาด้วย
    • ใน Debian หรือ Ubuntu ให้สั่ง:
      • sudo apt-get install mysql-client libmysql-ruby
    • ใน Windows ให้สั่ง (รอเพิ่มเติม)

ตัวอย่างโปรแกรม

require 'rubygems'
require 'active_record'
 
ActiveRecord::Base.establish_connection(:adapter  => "mysql", 
                                        :host     => "158.108.183.10", 
                                        :username => "drupal", 
                                        :password => "you-know-it", 
                                        :database => "drupal",
                                        :encoding => 'utf8')
 
class Node < ActiveRecord::Base
  self.inheritance_column = 'type_id'
  set_table_name "node"
  set_primary_key "vid"
 
  has_one :profile, 
          :class_name => 'Profile', 
          :foreign_key => 'vid'  
end
 
class Profile < ActiveRecord::Base
  set_table_name "content_type_lect_profile"
  set_primary_key "vid"
end
 
nodes = Node.find(:all,
                  :conditions => {:type => "lect_profile"})
 
nodes.each do |node|
  puts "#{node.vid} #{node.title}"
  puts node.profile.field_expertise_value
  puts node.profile.field_acad_position_value
  puts "-----------------------------"
  if node.vid==227
    puts "Changing data for #{node.title}"
    node.profile.field_expertise_value = "Flying"
    node.profile.save
  end
end
html_extraction_hack_quick_training.txt · Last modified: 2008/10/21 11:14 by jittat
 
 
©2008 Another cool website by 80KV